переместить уже загруженный файл в новое место в laravel4

как переместить уже загруженный файл в другое место в laravel4. я сохраняю загруженные файлы во временную папку в папке моего проекта с путем 'public/images/temp/'. файлы успешно загружаются в эту временную папку. но я делаю вариант оплаты между этим. так что только если платеж прошел успешно, мне нужно переместить это из временной папки в другую папку, переименовав ее, путь 'public/images/consult/' .

я пробовал FILE::Move() и FILE::delete(), но не работал. код, который я использовал:

$filename1 = Session::get('email_filename1'); //filename of file stored in temporary folder

$ext = substr(strrchr($filename1,'.'),1);

$newfilename1 = 'Email_'.Str::random(20).'_'.Session::get('patient_id').'.'.$ext;

$oldfile = public_path().'images/consultation_files/temp/'.$filename1;

$newfile = public_path().'images/consultation_files/'.$newfilename1;

 File::move($oldfile, $newfile);

если кто знает поделитесь решениями. это будет так полезно..

Журнал показывает:

[2015-02-05 11:27:54] log.ERROR: исключение «Symfony\Component\HttpKernel\Exception\NotFoundHttpException» в /var/www/html/myrpoject/vendor/laravel/framework/src/Illuminate/Routing/ Router.php:1429 Трассировка стека:#0 /var/www/html/myrpoject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1050): Illuminate\Routing\Router->handleRoutingException(Object(Symfony \Component\Routing\Exception\ResourceNotFoundException))

:#1/var/www/html/myrpoject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1014): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))

:#2/var/www/html/myrpoject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(530): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))

:#3/var/www/html/myrpoject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(506): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))

:#4 /var/www/html/myrpoject/public/index.php(50): Illuminate\Foundation\Application->run()

:#5 {основной} [] []


person Zammuuz    schedule 04.02.2015    source источник
comment
Удаление файла не требуется, так как вы его переместили. И что значит не работает? Вы получаете сообщение об ошибке или файл просто не перемещен? Проверить app/storage/logs/laravel.log   -  person lukasgeiter    schedule 04.02.2015
comment
Содержит ли файл журнала какую-либо информацию?   -  person lukasgeiter    schedule 05.02.2015
comment
@lukasgeiter: Привет .. я добавил сообщение журнала в свой пост сейчас ..   -  person Zammuuz    schedule 05.02.2015
comment
Эта ошибка означает, что ваш код никогда не выполняется, потому что маршрут не найден. Можете ли вы добавить соответствующий маршрут и действие контроллера?   -  person lukasgeiter    schedule 05.02.2015
comment
код, который я показал в сообщении, — это код в методе Homecontroller с одной дополнительной строкой для перенаправления на представление в случае успеха. а в router.php я просто добавил Route::controller('home', 'HomeController');   -  person Zammuuz    schedule 05.02.2015
comment
Мне нужно немного больше, чтобы иметь возможность сказать, в чем проблема. Возможно редирект не работает. Удалите его и посмотрите, есть ли у вас все еще ошибка.   -  person lukasgeiter    schedule 05.02.2015
comment
@lukasgeiter: привет .. теперь у меня такая ошибка, когда я использую FILE::move(), как показано в посте. rename(/var/www/html/myproject/public/images/consultation_files/temp/tmp_email_ktII0QpHz6jFMZThsWTw_177.jpg,/var/www/html/myproject/public/images/consultation_files/tmp_email_ktII0QpHz6jFMZThsWTw_177.jpg): No such file or directory   -  person Zammuuz    schedule 05.02.2015
comment
но файлы присутствуют в этой папке с разрешением 777   -  person Zammuuz    schedule 05.02.2015
comment
эй .. наконец это сработало !! :) я использую переименовать()   -  person Zammuuz    schedule 05.02.2015
comment
Итак, rename() работало напрямую, а File::move() нет? В это довольно трудно поверить, потому что File::move() ничего не делает, кроме как звонит rename() под капотом.   -  person lukasgeiter    schedule 05.02.2015


Ответы (1)


Используйте метод File::copy()

$source будет вашим источником, а $destination будет вашим пунктом назначения

if ( ! File::copy($source, $desitination))
{
    die("Couldn't copy file");
}

Чтобы удалить файл, используйте File::delete($filename);, а для нескольких файлов используйте File::delete($file1, $file2, $file3);.

И если это не удается, см. app/storage/logs/laravel.log, как предлагает lukasgeiter

Я бы посоветовал проверить File::exists(), а затем выполнить File::delete($filename);

Дополнительная информация здесь

person Sulthan Allaudeen    schedule 04.02.2015
comment
привет .. я проверил это с копированием файла, но ничего не произошло .. вместо этого страница сломана и появляется белый экран :( - person Zammuuz; 05.02.2015