Загрузить - файлы не отображаются
Вопрос
Я пытаюсь использовать Uploadify (плагин jQuery) с моим приложением CakePHP.Локально (WampServer) он работает отлично, но когда я пробую его на своем реальном сервере (Dreamhost), файлы не отображаются.Я правильно изменил папки, проверил пути и т. д., но не могу понять, почему это не работает.Вот файл upload.php:
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . "/app/webroot/posts/temp/";
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
$targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);
move_uploaded_file($tempFile,$targetFile);
}
echo "1";
Этот сценарий определенно запускается, но я просмотрел указанную папку (и всю файловую систему), а загруженные файлы просто не отображаются!Это сводит меня с ума. Надеюсь, у кого-нибудь есть ответ на этот вопрос.Пожалуйста, дайте мне знать, если мне нужно опубликовать еще код, и я это сделаю.
Решение 2
Оказывается, это была такая строка:
$targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);
Эта строка предназначалась для добавления к имени файла случайной последовательности чисел во избежание коллизий.Однако, как вы можете видеть, он работает со всем путем, а не только с именем файла.Ну, мое доменное имя находится на моем пути (т. е.mydomain.com), и, таким образом, получил изменения в mydomain_12314123402.com, который, очевидно, является несуществующим путем.
Блин, я чувствую себя идиотом!
Другие советы
Вы можете изменить $targetPath, чтобы он относился к документу, а не к точному пути к серверу.У меня была аналогичная проблема некоторое время назад.