Вопрос

Я пытаюсь использовать 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, чтобы он относился к документу, а не к точному пути к серверу.У меня была аналогичная проблема некоторое время назад.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top