javascript - Rails 3 和 plupload - 上传后如何进行重定向?

标签 javascript redirect ruby-on-rails-3.1 plupload

当我通过下面的代码通过 plupload 上传文件时,所以在 firebug 控制台中我看到消息 POST/uploads 200 OK 8192ms。文本的颜色是红色。当我查看终端输出时,有Completed 200 OK in 7653ms

var uploader = new plupload.Uploader({
    runtimes: 'gears,html5,flash,silverlight,browserplus',
    browse_button: 'pickfiles',    
    autostart : true,    
    max_file_size: '10mb',
    url: '/uploads',
    resize: { width: 320, height: 240, quality: 90 },
    flash_swf_url: '/Scripts/pl/plupload.flash.swf',
    silverlight_xap_url: '/Scripts/pl/plupload.silverlight.xap',
    filters: [
    { title: "Image files", extensions: "jpg,gif,png" },
    { title: "Zip files", extensions: "zip" }
]
});
uploader.bind('Init', function (up, params) {
    $('#filelist')[0].innerHTML = "<div>Current runtime: " + params.runtime + "</div>";
});
uploader.bind('Error', function (up, err) {
    $('#filelist').append("<div>Error: " + err.code +
        ", Message: " + err.message +
        (err.file ? ", File: " + err.file.name : "") +
        "</div>"
    );

});
uploader.bind('FilesAdded', function (up, files) {
    for (var i in files) {
        $('#filelist')[0].innerHTML += '<div id="' + files[i].id + '">' + files[i].name + ' (' + plupload.formatSize(files[i].size) + ') <b></b></div>';
    }
    //uploader.start();
});
$('#uploadfiles').click(function (e) {
    uploader.start();
    e.preventDefault();
});

uploader.bind('UploadProgress', function (up, file) {
    $('#' + file.id)[0].getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
});

uploader.init();

Uploads Controller 中,操作 create 如下所示:

  def create
    @upload = Upload.new(:upload => params[:file])

    if @upload.save
      head 200
      #redirect_to '/users'
    else
      render :action => "new"
    end
  end

如何重定向到任何页面?可以看到,我尝试在完成到页面 users 的上传后进行重定向,但不幸的是没有任何反应。如果在 create 操作中 head 200 行,那么也没有任何反应。

谁能帮帮我,上传完成后如何重定向到任何其他页面?我试图在谷歌上搜索,但我没有找到任何方法...

我还想问你 - 为什么在上传文件后 Firebug 控制台中总是出现 POST/uploads 200 OK 行而没有任何日志消息?

最佳答案

我可以简单地使用 window.location javascript 函数来完成。 Plupload 有一个 uploadcomplete事件,当所有文件上传完成时产生。 FileUploaded 事件在单个文件上传后生成。因此,如果您希望上传多个文件,uploadcomplete 事件会很有帮助。上传者的想法取自 here并添加上传完成事件。这是我的 uploader 。

<script type="text/javascript">
 $(function(){
  var uploader = new plupload.Uploader({
   runtimes : "html5",
   browse_button : 'pickfiles',
   max_file_size : '100mb',
   url : "/documents",
   multipart: true,
   multipart_params: {
   "authenticity_token" : '<%= form_authenticity_token %>'
  }
});

 uploader.bind('FilesAdded', function(up, files) {
  $.each(files, function(i, file) {
  $('#filelist').append(
    '<div id="' + file.id + '">' +
    'File: ' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>'

    );

  });


   });

  uploader.bind('UploadProgress', function(up, file) {    

$('#' + file.id + " b").html(file.percent + "%");


  });

  uploader.bind('UploadComplete', function(up, files) {
  window.location = '/documents';
 });


  $('#uploadfiles').click(function(e) {
  uploader.start();
  e.preventDefault();
  });


  uploader.init();


  });


  </script>

上传完成后, uploader 重定向以列出所有上传的文档。

关于javascript - Rails 3 和 plupload - 上传后如何进行重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8888373/

相关文章:

ruby-on-rails - 为什么我在需要发条 gem 时得到 Gem::LoadError?

javascript - 高度不会一直过渡

javascript - 需要 CryptoJS.SHA256 帮助

javascript - 单击复选框时如何在 jquery 中创建数组?

javascript - 为什么 html 元刷新重定向在提示页面上不起作用?

redirect - 交响乐 2 : Redirect a user to a page if he has a specific role

ruby-on-rails - 如何防止 force_ssl 在重定向中破坏参数?

javascript - 当进度条在屏幕上可见时在进度条上启动动画

redirect - JSF/Mojarra ExternalContext.redirect() 创建一个 HttpSession

ruby-on-rails - rails 使用! route 的(感叹号)