0
我想加载在配置目录中,由用户选择一个yaml文件。 我有一个观点:为什么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
当用户选择文件并点击“上传”什么也没有发生,文件是不是在config文件夹。我能做什么?也许我应该使用“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)
我试过了,但是没有什么变化...... –
是否config文件夹中有正确的permisssions –
我有Windows 7和我做:config/properties/attributes /我删除了只读的检查,我确定了。但如果我追溯它的方式,它仍然是只读的。我必须这样做?为什么它不会改变? –