2013-10-13 3 views
0

У меня проблема с загрузкой файла на мой сервер с помощью laravel на виртуальном хосте.Laravel - Загрузка файлов с использованием виртуального хоста

Вот случай: когда я пытаюсь загрузить иметь ссылку на абсолютный путь:

if ($file->move('laravel.dev/upload', $file->getClientOriginalName())) { 
        echo 'uploaded'; 
       } 

Файл может быть загружен successsfully хотя это создаст папку с именем «laravel.dev», который мой хост и внутри него создает другую папку с именем «upload». С другой стороны, если я установить свой код так:

if ($file->move(asset('uploaded'), $file->getClientOriginalName())) { 
        echo 'uploaded'; 
       } 

Он бросает эту ошибку: Laravel Error

То, что я хотел добиться того, чтобы загрузить файл непосредственно в «загрузить» папку я создал в общей папке «projectname/public /». Как я могу это достичь?

ответ

1

Вместо этого вы можете использовать $_SERVER['DOCUMENT_ROOT'].

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

if ($file->move($var, $file->getClientOriginalName())) { 
    echo 'uploaded'; 
} 

используется путь не URL-адреса, как laravel.dev/upload.

+0

Perfect. Благодарю. Я не понимал, что :(Позор мне. – Bajongskie

0

Как писал Хуан, вы используете пути URL, а не пути к файлам. У Laravel есть path helpers, чтобы помочь вам в решении этой проблемы.

Если вы хотите выбрать такую ​​папку, как public/uploaded, вы можете использовать public_path().'/uploaded. Если вы хотите выбрать такую ​​папку, как app/storage/uploaded, вы можете использовать storage_path().'/uploaded.

В вашем примере вы можете использовать этот код:

if ($file->move(public_path().'/uploaded', $file->getClientOriginalName())) { 
    echo 'uploaded'; 
} 
Смежные вопросы