我目前有一个使用BlueImp jQuery FileUploader的ASP.NET MVC项目,效果很好。
https://github.com/blueimp/jQuery-File-Upload
但是,似乎默认行为是在将文件上载到服务器时使用原始文件名。理想情况下,我想要的是让jQuery FileUploader为每个上传的文件生成唯一的文件名。
我确实尝试对服务器上的每个上传文件进行重命名,但后来我意识到FileUploader似乎仍然挂在原始文件名上。
有没有办法让jQuery上传器为每个上传的图像生成一个随机/唯一的文件名(无论是单独还是批量)?
答案 0 :(得分:13)
我遇到了同样的问题。使用PHP的upload.class文件,我为handle_file_upload方法添加了一个唯一的文件名,如下所示:
之前:
$file->name = $this->trim_file_name($name, $type, $index);
后:
$file->name = $this->trim_file_name(md5($name), $type, $index);
我确信你可以在ASP.NET中做类似的事情
修改强>
在最新版本中,它位于UploadHandler.php的第506行,更改:
$name = $this->trim_file_name($file_path, $name, $size, $type, $error, $index, $content_range);
到
$name = $this->trim_file_name($file_path, md5($name), $size, $type, $error, $index, $content_range);
完美无缺!
答案 1 :(得分:1)
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
$index = null, $content_range = null) {
$file = new stdClass();
}
之前:
$file->name = $this->get_file_name($name, $type, $index, $content_range);
后:
$file->name = $this->get_file_name(uniqid(), $type, $index, $content_range);
答案 2 :(得分:0)
我编辑了Paul的答案,但它被拒绝了......无论如何,他的回答是正确的,但是代码行是针对旧文件的。
在最新版本中,它位于UploadHandler.php的第506行,更改:
$name = $this->trim_file_name($file_path, $name, $size, $type, $error, $index, $content_range);
要
$name = $this->trim_file_name($file_path, md5($name), $size, $type, $error, $index, $content_range);
完美无缺!