我允许用户在我的页面上传任何类型的文件,但文件名可能存在冲突.因此,我想自动重命名文件,以便任何时候上传任何文件,在数据库和上传后的文件夹中,当其他用户下载相同的文件时,文件名也会被更改,重命名的文件将被下载.我试过了:
if (Input::hasFile('file')){
echo "Uploaded</br>";
$file = Input::file('file');
$file ->move('uploads');
$fileName = Input::get('rename_to');
}
Run Code Online (Sandbox Code Playgroud)
但是,名称改为:
php5DEB.php
phpCFEC.php
我该怎么做才能以相同的类型和格式维护文件,只需更改其名称?
我也想知道如何在页面上显示最近上传的文件并让其他用户下载?
小智 7
对于唯一文件名称保存
在5.3中(最适合我,因为在Illuminate\Http\UploadedFile中使用md5_file hashname):
public function saveFile(Request $request) {
$file = $request->file('your_input_name')->store('your_path','your_disk');
}
Run Code Online (Sandbox Code Playgroud)
在5.4中(在Illuminate\Http\UploadedFile中使用不唯一的Str :: random(40)hashname).我使用此代码来确保唯一的名称:
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');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20584 次 |
| 最近记录: |