【问题标题】:Ajax request saving files with RailsAjax 请求使用 Rails 保存文件
【发布时间】:2010-11-26 00:02:06
【问题描述】:

我对 ruby​​ on rails 还很陌生,我正在尝试使用 dnduploader.js 实现拖放文件功能。我正在将文件发布到控制器,但我不确定如何将控制器中的文件保存到本地文件系统。如果有人可以提供帮助,这是我的代码的 sn-ps。谢谢。

这是我用来帮助我的链接:http://onehub.com/blog/posts/designing-an-html5-drag-drop-file-uploader-using-sinatra-and-jquery-part-1/

$("#drop_target").dndUploader({
    url : "/upload",
    method : "PUT"
});

if (dataTransfer.files.length > 0) {
    $.each(dataTransfer.files, function ( i, file ) {
        var xhr    = new XMLHttpRequest();
        var upload = xhr.upload;

        xhr.open($this.data('method') || 'POST', $this.data('url'), true);
        xhr.setRequestHeader('X-Filename', file.fileName);

        xhr.send(file);
    });
};

这是我不知道该怎么办的地方?我看到 chrome 内部发生了上传请求,但我不确定如何将文件保存到文件系统中。

def upload
  render :text => "uploaded #{env['HTTP_X_FILENAME']} - #{request.body.read.size} bytes -- #{params[:upload].to_yaml}"
end

【问题讨论】:

    标签: jquery ruby-on-rails ajax rest


    【解决方案1】:

    文件似乎以“request.body”的形式上传。因此,您可以执行以下操作:

    fp = File.open("/local_path/local_file", "wb") 
    fp.write(request.body.read) 
    fp.close 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2014-01-16
      • 2015-04-03
      相关资源
      最近更新 更多