Асинхроннан запись и удаление файлов с предпросмотром

Boris

Новичок
Здравствуйте форумчане, и с наступающими праздниками.
Задача моя состоит в том, чтобы дать пользователю сайта, залить картинку товара и несколько картинок на которых товар, к примеру диван разложен и т.п.
Задачу решаю так:
Картинку главную закачиваю в темп фолдер и через iframe с помощью JS вывожу на странице без перезагрузки.
теперь мне надо залить несколько фото(к примеру диван разложен и т.п) нашел такой способ
HTML:
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('image.*')) {
        continue;
      }

      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {
        return function(e) {
          // Render thumbnail.
          var span = document.createElement('span');
          span.innerHTML = ['<img style="height:100px;" src="', e.target.result,
                            '" title="', escape(theFile.name), '"/>'].join('');
          document.getElementById('list').insertBefore(span, null);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
И тут поплыл,
files[] - содержит только последний добавленный файл и я не могу обработать предыдущие
как .быть подскажите?

P/S если вдруг пользователь выбрал не ту картинку он может ее удалить, на стороне клиента я просто с помощью.JS удалю объект. При нажатии submit я получу в php array картинок и сохраню их. Идея ведь решаемая????
 

Boris

Новичок
И еще пожалуйста помогите разобраться.

вот код test_insert_photo.php
HTML:
<script type="text/javascript">
function getIframe()
{
  document.getElementById("answer").innerHTML = '<img src="images/loaderT.gif">';
  return;
}
</script>
<iframe name="backFrame" style="width:0; height:0;"></iframe>
<div id="answer" name="answer"></div>
<form action="test_upload_photo.php" method="post" enctype="multipart/form-data" name="iform" target="backFrame" >
    <input type="file" id="img_file" name="img_file" onchange="getIframe();iform.submit();">
</form>
а вот код test_upload_photo.php
PHP:
<?php
$img = "../users_temp_images/".$_FILES["img_file"]["name"];
if(copy($_FILES["img_file"]["tmp_name"],$img))
{
    echo "<script type=\"text/javascript\">
                window.parent.document.getElementById(\"answer\").innerHTML = '<img src=\"".$img."\" />';</script>";
}
?>
Почему $img не показывается на странице?
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Boris, потому, что надо читать мануал. Как правильно работать с загрузкой файлов.
 

Boris

Новичок
Boris, надо было пройти в мануал, найти раздел http://php.net/manual/ru/features.file-upload.post-method.php, увидеть там функцию move_uploaded_file, ссылки на другие разделы, прочитать. Понять, что функция copy() не то, что тебе надо.
c0dex, спасибо огромное,
днло в том, что и copy() кидал файл в нужную папку, но я исправил
PHP:
<?php
$img = "../users_temp_images/".time().".jpg";
if(move_uploaded_file($_FILES["img_file"]["tmp_name"],$img))
{
    echo "<script type=\"text/javascript\">
                window.parent.document.getElementById(\"answer\").innerHTML = '<img src=\"{$img}\" />';</script>";
}
?>
и все равно
echo "<script type=\"text/javascript\">
window.parent.document.getElementById(\"answer\").innerHTML =window.parent.document.getElementById(\"answer\").innerHTML = '<img src=\"{$img}\" />';</script>"; не работает
для проверки сделал window.parent.document.getElementById(\"answer\").innerHTML = 'alert('OK')'; работатет

c0dex, что делать? смотрю в книгу вижу ...
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Смотреть надо, есть ли какие ошибки и т.д. Если у тебя блок с echo, что внутри условия работает, то тут уже надо смотреть клиентскую сторону.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Boris, у тебя не показывается изображение? или вообще не аттачится к DOM кусок вывода? Если первое - подозреваю, что путь к изображению у тебя неверный. Пробуй вызвать его с таким путем напрямую.
 

Boris

Новичок
Boris, у тебя не показывается изображение? или вообще не аттачится к DOM кусок вывода? Если первое - подозреваю, что путь к изображению у тебя неверный. Пробуй вызвать его с таким путем напрямую.
путь корректный , по моему с DOM что-то или еще что.......
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну тогда дебаж, я не телепат)
 
Сверху