Проблемы с загрузкой PHP - PullRequest
1 голос
/ 26 июня 2011

Я полностью в тупике.Я пытаюсь загрузить простую фотографию через HTTPS.Я делал это бесчисленное количество раз, но в этот раз это не работает.

Вот ситуация.Я использую очень простой, но надежный скрипт загрузки файлов, простой ввод = файл и т. Д. И кнопку отправки для загрузки с использованием POST, оттуда PHP берет на себя и делает все остальное.Оказавшись на стороне php, я прошел через решение проблем / отладку и заметил, что имя файла было кучей дерьма ... uploads / 1.��8D��J��Q��9.конечно, не тот файл, который я выбрал.

Я не уверен, что это проблема с SSL, HTML5 или PHP.Все остальные данные, проходящие через, заканчиваются очень хорошо читаемыми в БД.

Я заметил что-то новое в поле загрузки файла c: \ fakepath, я использовал HTML5 в течение последних нескольких месяцев и неувидел это, посмотрел и увидел, что это функция безопасности HTML5.Не знаете, если это является причиной проблемы или нет?

Хорошо, поэтому я проверил с другом (если я схожу с ума), что HTML и PHP в порядке.

Я даже сломалон упал и стал очень простым, но все равно не повезло ...

$uploaddir = 'uploads/';

$uploadfile = $uploaddir . basename($_FILES['photo']['name']);
$filename = $_FILES['photo']['name'];
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile)) {
    echo "Alls good.";
}

Также на странице HTML я использую плагин jquery "niceforms". Я отключил это, чтобы исключить его, и до сих пор нетработа.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 июня 2011

Мне интересно, объявили ли вы свой, как показано ниже:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
   <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
   Choose a file to upload: <input name="uploadedfile" type="file" /><br />
   <input type="submit" value="Upload File" />
</form>

Вы должны объявить enctype, если вы загрузили что-то.

1 голос
/ 26 июня 2011

Это всегда простые вещи, не так ли?Я думаю, что вы можете не заметить относительный путь загрузки, в который вы перемещаете файл.Я бы не использовал здесь относительный путь.

$uploaddir = 'uploads/';

Вместо этого попробуйте использовать полный путь файловой системы к каталогу загрузки.Обычно это корень документа, объединенный с вашим каталогом для загрузки.

$_SERVER['DOCUMENT_ROOT'] or dirname(__FILE__)

... должен помочь определить путь.

$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/uploads/';
...