我上傳的所有文件都暫時存儲在文件夾/tmp
中。更改上傳文件的tmp文件夾
我想更改此文件夾,因爲/tmp
文件夾太小。 它不會幫助我上傳文件,並在上傳後將它移動到其他地方。
我已經嘗試過改變ENV['TMPDIR']
,ENV['TMP']
,並ENV['TEMP']
別的東西,但我上傳的文件(* RackMultipart)仍暫存/tmp
。
我該如何改變這種行爲?當然,我可以將/tmp
掛載到其他地方,但是更容易告訴Rails/Rack/Thin/Apache/...存儲文件的位置。我不使用回形針等。
對於我的服務器,我使用Apache作爲代理平衡器將流量傳遞到4個瘦服務器。
我有一個使用ruby 2.0的Rails 4 rc1項目。
編輯:
def create
file = params[:sample_file][:files].first
md5_filename = Digest::MD5.hexdigest(file.original_filename)
samples = Sample.where("name in (?)", params["samples_#{md5_filename}"].map {|exp| exp.split(" (").first}) rescue []
file_kind = FileKind.find(params[:file_kind])
@sample_file = SampleFile.new
@sample_file.file_kind = file_kind
@sample_file.samples = samples
@sample_file.original_file_name = file.original_filename
@sample_file.uploaded_file = file #TODO: ..
@sample_file.user = current_user
...
#many other stuff
...
respond_to do |format|
if @sample_file.save
format.html {
render :json => [@sample_file.to_jq_upload].to_json,
:content_type => 'text/html',
:layout => false
}
format.json { render json: {files: [@sample_file.to_jq_upload]}, status: :created, location: @sample_file }
else
format.html { render action: 'new' }
format.json { render json: {files: [@sample_file.to_jq_upload]}.to_json, status: :ok}
end
end
end
你是如何處理文件上傳,你說你不使用回形針 - 是否還有其他的寶石?發佈處理文件上傳的代碼。在某些時候你使用File.write? – Matt
你應該設置TMP =/other /目錄並啓動服務器 – sethi
@Matt我使用jQuery文件上傳。當我上傳文件時,使用來自控制器的操作:sample_file。我做了'form_for SampleFile.new,html:{multipart:true}'。在操作中,我通過'params [:sample_file] [:files]' – Bjoernsen