Показать сообщение отдельно
  #2 (permalink)  
Старый 25.10.2015, 06:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Не удивительно, что не загружается, так как никакой отправки файла клиент и не производит. И сервер предупреждает о несоответствии.

Код серверный это абракадабра полная. Загрузка файлов на сервере, если говорить о полном процессе, начинается с проверки не пуст ли массив FILES, если нет, проверяются ошибки загрузки его ключа "error", если есть ошибки то действия определенные сценарием - или прекращение загрузки и возврат ошибок клиенту, либо перемещение в каталог загруженных, и сообщить клиенту о тех что не загружены, в случае загрузки нескольких файлов.

Если нет ошибок и есть что помещать в каталог, этому каталогу устанавливаются права 0777 (после загрузки вновь по умолчанию - 0755) и только затем в цикле если файлов несколько, или сразу если файл один функцией move_uploaded_file перемещают загруженный файл в каталог. Только нельзя брать непосредственно имя файла, что содержится в ключе "name", нужно из него брать только имя файла basename(), так как этот ключ может содержать и путь, который можно подставить. В каталоге, в который производится загрузка, должно быть запрещено выполнение любых скриптов и исполняемых файлов.

На клиенте "// Сервер вернул код 200 (что хорошо)" еще не означает, что все хорошо, это всего лишь ответ сервера что "созвонились". О загрузке на клиенте:
https://learn.javascript.ru/xhr-forms
http://habrahabr.ru/post/120917/
Ответить с цитированием