2015-10-27 2 views
0

Я использую поддомен для обработки своих изображений и других материалов.Laravel переместить загруженный файл вручную

безопасно каждый раз, когда пользователь загружает изображение, а на моем бэкэнд я всегда перемещаю его вручную?

file = $request->file; 
    $filename = $file->getClientOriginalName(); 
    $file->move('/home/subdomain/public/tmp/', $filename); 

Будет ли проблема в будущем, если есть много запросов?

Благодаря

+0

почему вы называете его ручным мужчиной ... его автоматический я вижу –

ответ

1

Да, это безопасное перемещение изображений таким образом.

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

$filename = time().rand(0,9999); 

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

Надеюсь, это поможет!

+0

Спасибо за ответ! – ssuhat

+0

Вы также можете связать оригинальное имя с этим хешем, если хотите. :) –

+0

yep. Я использую md5 имя и время вместе – ssuhat

1

Это безопасно, чтобы сделать это, но нет никакой гарантии, что имя файла будет уникальным. Я мог бы загрузить файл с именем myfile.jpg, и вы могли бы загрузить другой файл, также называемый myfile.jpg, и они переписывали бы друг друга.

Лучше создать какой-либо хэш или уникальный идентификатор для каждого имени файла и сохранить там файл. Вы также можете создать каталог с именем хеша и сохранить файл внутри этого каталога.

Кроме этого ваша функция в безопасности.

+0

yep. я сделаю хэш. Я просто хочу знать, безопаснее или нет. потому что я пробовал использовать файловую систему, но она продолжает терпеть неудачу. Спасибо за ответ – ssuhat

0

Чтобы убедиться, что имя файла является уникальным дополнить текущий штамп времени к имени файла

$file = 'myImage.jpg'; 
$filename = pathinfo($file, PATHINFO_FILENAME); 
$extension = pathinfo($file, PATHINFO_EXTENSION); 

$uniqueName = $filename.'_'.Carbon::now().extension; 

Примечание: Включить пространство имен углерода \ углерода при необходимости.

Надеюсь, это полезно.

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