如何获取BlueImp jQuery FileUpload以生成唯一的文件名

时间:2012-06-27 18:21:50

标签: javascript jquery asp.net-mvc jquery-plugins file-upload

我目前有一个使用BlueImp jQuery FileUploader的ASP.NET MVC项目,效果很好。

https://github.com/blueimp/jQuery-File-Upload

但是,似乎默认行为是在将文件上载到服务器时使用原始文件名。理想情况下,我想要的是让jQuery FileUploader为每个上传的文件生成唯一的文件名。

我确实尝试对服务器上的每个上传文件进行重命名,但后来我意识到FileUploader似乎仍然挂在原始文件名上。

有没有办法让jQuery上传器为每个上传的图像生成一个随机/唯一的文件名(无论是单独还是批量)?

3 个答案:

答案 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);

完美无缺!