2014-11-07 2 views
1

Я пытаюсь загрузить файл xls в папку «xls» в моем общедоступном каталоге.Не удалось создать каталог «/xls/sample.xlsx»

Сначала он работал, когда я развернул свое приложение на веб-сервере, но последний, когда внес некоторые изменения в мои файлы, хотя я не касался файлов, разделяющих их на загрузку xls.then он переставал работать, когда я пытаюсь загрузить онлайн меня раздражает ошибка «Невозможно создать каталог« /xls/sample.xlsx ». Но он по-прежнему работает на моем локальном хосте, если я пытаюсь загрузить.

Я изменил разрешение папки 777 и 755.But до сих пор нет luck.below не как мой контроллер выглядит

public function store() 
    { 
     $rules =[ 
     'xls'  => 'Required|mimes:xls,xlsx', 
     ]; 

     $validation = Validator::make(Input::all(),$rules); 

      if ($validation->passes()) 
      { 
       $xls = new Xls; 

       $xlsname=Input::file('xls')->getClientOriginalName(); 
       $path = public_path('xls/'.$xlsname); 

       $xls->name = $xlsname; 

       Input::file('xls')->move($path); 

       $xls->save(); 

       return Redirect::to('/')->with('success','Excel Sheet successfully uploaded'); 

      } 
      $formerror = Response::json($validation->messages()->toArray()); 

      // Session::put('formerror',$formerror); 
    } 

Пожалуйста, что я делаю неправильно

EDIT ONE:

, когда я делаю следующие изменения в своем контроллере, он по-прежнему не работает на моем веб-сервере, он вызывает ошибку: невозможно создать каталог «/ xls», но отлично работает на моем локальном хосте.

public function store() 
    { 
     $rules =[ 
     'xls'  => 'Required|mimes:xls,xlsx', 
     ]; 

     $validation = Validator::make(Input::all(),$rules); 

      if ($validation->passes()) 
      { 
       $xls = new Xls; 

       $xlsname=Input::file('xls')->getClientOriginalName(); 
       $path = public_path('xls'); 

       $xls->name = $xlsname; 

       Input::file('xls')->move($path,$xlsname); 

       $xls->save(); 

       return Redirect::to('/')->with('success','Excel Sheet successfully uploaded'); 

      } 
      // $formerror = Response::json($validation->messages()->toArray()); 

      Session::put('formerror',$validation->messages()->toArray()); 
    } 

ответ

0

Как указано в Laravel Docs функции move ожидает, что путь назначения в качестве первого аргумента и (по желанию) в качестве имени файла в секунду. (Я считаю, что имя файла по умолчанию будет иметь имя клиента). Таким образом, первым параметром должна быть папка, а не полный путь.

Так вместо того, чтобы сделать это:

$path = public_path('xls'); 
Input::file('xls')->move($path); // or, alternatively: ->move($path, 'your-own-file-name.xls'); 
+0

это еще trows меня ошибка «Не удалось создать„/ XLS“каталог» .Но когда я сделать changes.it работает на mylocalhost, но не на веб-сервере –

+0

Что если вы создадите каталог вручную? – lukasgeiter

Смежные вопросы