我允许用户在我的页面上上传任何类型的文件,但是文件的名称可能会发生冲突。所以,我想要自动重命名文件,以便任何时候任何文件被上传,在数据库中,在上传后在文件夹中,当其他用户下载相同的文件,重命名的文件时,文件的名称也会被更改。我试过:
if (Input::hasFile('file')){
echo "Uploaded</br>";
$file = Input::file('file');
$file ->move('uploads');
$fileName = Input::get('rename_to');
}
但是,名称被更改为如下内容:
php5DEB.php phpCFEC.php
,我能做些什么来维护相同类型和格式的文件,只需更改它的名称?
我还想知道如何在页面上显示最近上传的文件并让其他用户下载??。
发布于 2017-02-06 23:37:56
用于保存唯一文件名。
在5.3中(对我来说最好是因为在照明\Http\UploadedFile中使用md5_file hashname ):
public function saveFile(Request $request) {
$file = $request->file('your_input_name')->store('your_path','your_disk');
}
在5.4 (使用非唯一的Str::随机(40) hashname在照明\Http\UploadedFile)。我使用此代码来确保唯一的名称:
public function saveFile(Request $request) {
$md5Name = md5_file($request->file('your_input_name')->getRealPath());
$guessExtension = $request->file('your_input_name')->guessExtension();
$file = $request->file('your_input_name')->storeAs('your_path', $md5Name.'.'.$guessExtension ,'your_disk');
}
发布于 2017-01-11 11:53:22
用这个
$file->move($destinationPath, $fileName);
发布于 2017-01-11 11:58:22
您可以使用php核心函数rename(oldname,newName)
http://php.net/manual/en/function.rename.php
https://stackoverflow.com/questions/41588306
复制相似问题