我只能上传一次相同的文件

时间:2013-10-23 17:06:24

标签: plupload

我在我的网站上成功整合了plupload。我可以毫无问题地上传文件,但我不能多次上传同一个文件。

PS:只有Internet Explorer才会出现此问题。我对谷歌浏览器没有任何问题。

例如:

  1. 我上传'hello.jpg'
  2. 立即上传
  3. 上传完成后,我会显示警告(无论如何)。
  4. 然后我尝试上传相同的文件,但它不起作用。没啥事儿。我在'FilesAdded'事件中设置了一个断点,但它永远不会到达。
  5. 但如果我尝试上传其他文件,则效果很好。

    但如果按F5(刷新),我可以上传以前上传的文件。

    有什么想法吗?我真的希望能够多次上传同一个文件。

    例如,如果用户上传文件然后在文件中意识到某些内容错误并修改此文件中的某些内容并需要再次上传,那么在我的情况下他就无法再次上传...

    以下是我的代码的一部分:

    Html部分:

    <div id="container">
        <a id="pickfiles" href="#" class="btn ui-button-text-icon-secondary">Uploader</a>
    </div>
    

    Javascript部分:

    var uploader = new plupload.Uploader({
        runtimes: 'gears,html5,flash,silverlight,browserplus',
        unique_names: false,
        browse_button: 'pickfiles',
        container: 'container',
        max_file_size: '5mb',
        url: pFiles.addFileUrl,
        multi_selection: false,
        multipart: true,
        multipart_params: { "type": "undefined" },
        filters : [{title : "Adobe PDF files", extensions : "pdf"}], 
        flash_swf_url: pFiles.uploadFlashUrl,
        silverlight_xap_url: pFiles.uploadSilverlightUrl,
        resize: { width: 320, height: 240, quality: 90 }
    });
    
    uploader.bind('FilesAdded', function (up, files) {
        uploader.state = 1;
        up.refresh(); // Reposition Flash/Silverlight
        uploader.settings.multipart_params["type"] = $('#type').val();
        uploader.start();
        up.refresh();
        $('#messages').show();
    });
    
    uploader.bind('UploadProgress', function (up, file) {
        $('#messages').html('Progression: ' + file.percent + "%");
    });
    
    uploader.bind('FileUploaded', function (up, file, response) {
        var msg = $.parseJSON(response.response).Message;
        alert(msg);
    });
    

    PS:我当前的plu​​pload版本是1.5.4

3 个答案:

答案 0 :(得分:1)

最后,我只需要安装2.0版本的plupload。

答案 1 :(得分:0)

尝试更改以下行:

unique_names: false

unique_names: true

来自文档:

  

unique_names

     

上传时生成唯一的文件名。这将为文件生成unqiue文件名,以便它们不会与服务器上的现有文件名冲突。

答案 2 :(得分:0)

上传过程完成后调用destroy()方法。然后再次发起