【问题标题】:Why yaml file upload does not work? I think permission problems为什么yaml文件上传不起作用?我认为权限问题
【发布时间】:2012-11-08 09:55:52
【问题描述】:

我想在 config 目录中加载用户选择的 yaml 文件。 我有一个看法:

<h1>File Upload</h1>
<p>Upload your Yaml Configuration File</p>

<p style="color: green"><%= flash[:notice] %></p>

<%= form_for :uploadFile, :html => { :multipart => true } do |f| %>

  <label for="upload_file">Select File:</label>
  <%= f.file_field :upload %>
  <%= f.submit "Upload", :disable_with => 'Uploading...' %>
<% end %>

我有一个控制器:

class UploadController < ApplicationController
def uploadFile
    uploaded_io = params[:uploadFile][:upload]
    File.open(Rails.root.join('public', uploaded_io.original_filename), 'w') do |file|
        file.write(uploaded_io.read)
    end

    flash.now[:notice]="File has been uploaded successfully"

end
end

当用户选择文件并按下“上传”时,没有任何反应,并且文件不在配置文件夹中。我能做些什么?也许我应该使用“import yaml”并以某种方式加载它,如何?

日志是这样说的:

Started POST "/upload/uploadfile" for 127.0.0.1 at 2012-11-08 10:51:46 +0100
Processing by UploadController#uploadfile as HTML
  Parameters: {"utf8"=>"✓",  "authenticity_token"=>"5FKgZJG4gKPCHXe8OqhFVZL0bu2X9zLR3sxd4ELBulA=", "uploadFile"=>{"upload"=>#<ActionDispatch::Http::UploadedFile:0x3b03ad8 @original_filename="newCases.yml", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"uploadFile[upload]\"; filename=\"newCases.yml\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:C:/Users/Simo/AppData/Local/Temp/RackMultipart20121108-2664-tb7lxr>>}, "commit"=>"Upload"}
  [1m[35mSetting Load (0.0ms)[0m  SELECT "settings".* FROM "settings" WHERE "settings"."id" = ? LIMIT 1  [["id", 1]]
  Rendered upload/uploadfile.html.erb within layouts/upload (0.0ms)
Completed 200 OK in 0ms (Views: 0.0ms | ActiveRecord: 0.0ms)

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 file-upload yaml


    【解决方案1】:
    File.open(Rails.root.join('config', uploaded_io.original_filename), 'wb+') do |file|
        file.write(uploaded_io.read)
    end
    

    试试这个

    【讨论】:

    • 我有 Windows 7,我这样做:配置/属性/属性/我删除了只读检查,我给了确定。但如果我原路返回,它仍然是只读的。我必须这样做吗?为什么它不改变?
    • 但我不认为你可以在配置中写文件先看看你是否可以在公共场合写文件
    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 2012-10-23
    • 2014-01-15
    • 2010-09-22
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多