अपलोड करें मेरे पास पेपरक्लिप का उपयोग करके दो अलग-अलग ऐप्स हैं।अनुलग्नक अपलोड करते समय पेपरक्लिप को नहीं बुलाया जाता है, इसलिए अनुलग्नक सहेजा नहीं जाता है। Rails3 +
Started POST "/uploads" for 127.0.0.1 at Mon Apr 25 11:35:50 +0100 2011
Processing by UploadsController#create as JSON
Parameters: {"_http_accept"=>"application/javascript", "Filename"=>"angels.txt", "folder"=>"https://stackoverflow.com/users/", "authenticity_token"=>"NVJj3ODIGuoc97wGvjWkez1YoN+SUDVtNJ+k80XdYXM=", "Upload"=>"Submit Query", "user_id"=>"1", "_uploadify_session"=>"BAh7ByIQX2NzcmZfdG9rZW4iMU5WSmozT0RJR3VvYzk3d0d2aldrZXoxWW9OK1NVRFZ0TkorazgwWGRZWE09Ig9zZXNzaW9uX2lkIiU0ZDEyNzZkNzczNzk1MDdiMmQ4NWZmYTY5MDY4YTU0MQ==--7eb8c0ca249e2566998a0e68322a89d731fdb4ad", "Filedata"=>#<ActionDispatch::Http::UploadedFile:0x4958490 @content_type="application/octet-stream", @original_filename="angels.txt", @tempfile=#<File:C:/DOCUME~1/Ed/LOCALS~1/Temp/RackMultipart20110425-4884-vyvdo8-0>, @headers="Content-Disposition: form-data; name=\"Filedata\"; filename=\"angels.txt\"\r\nContent-Type: application/octet-stream\r\n">}
[paperclip] identify -format %wx%h "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110425-4884-15he32x-0.txt[0]" 2>NUL
[paperclip] convert "C:/DOCUME~1/Ed/LOCALS~1/Temp/stream20110425-4884-15he32x-0.txt[0]" -resize "300x300>" "C:/DOCUME~1/Ed/LOCALS~1/Temp/stream20110425-4884-15he32x-020110425-4884-r65fe6-0" 2>NUL
[paperclip] identify -format %wx%h "C:/DOCUME~1/Ed/LOCALS~1/Temp/stream20110425-4884-15he32x-0.txt[0]" 2>NUL
[paperclip] convert "C:/DOCUME~1/Ed/LOCALS~1/Temp/stream20110425-4884-15he32x-0.txt[0]" -resize "100x100>" "C:/DOCUME~1/Ed/LOCALS~1/Temp/stream20110425-4884-15he32x-020110425-4884-1ttxfol-0" 2>NUL
[1m[36mAREL (15.6ms)[0m [1mINSERT INTO "uploads" ("user_id", "created_at", "photo_file_size", "photo_updated_at", "photo_content_type", "photo_file_name", "updated_at") VALUES (1, '2011-04-25 10:36:10.312500', 867, '2011-04-25 10:35:52.109375', 'text/plain', 'angels.txt', '2011-04-25 10:36:10.312500')[0m
[paperclip] Saving attachments.
[paperclip] saving C:/rails_project1/Uploadify-2/public/system/photos/2/medium/angels.txt
[paperclip] saving C:/rails_project1/Uploadify-2/public/system/photos/2/thumb/angels.txt
[paperclip] saving C:/rails_project1/Uploadify-2/public/system/photos/2/original/angels.txt
Completed 200 OK in 19422ms (Views: 62.5ms | ActiveRecord: 15.6ms)
केवल: एप्लिकेशन कि लगाव को बचाने या फोन नहीं करता है पेपरक्लिप पर, मैं इस लॉग जब मैं किसी ऐप
started POST "https://stackoverflow.com/users/1/uploads" for 127.0.0.1 at 2011-04-23 13:38:11 +0100
Processing by UploadsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"t2dRIH4FgOPnLRhpDK0x7iIfjB9Xj5rqkJRPCWZvJ14=", "upload"=> {"document"=>#<ActionDispatch::Http::UploadedFile:0x2beeb08 @original_filename="Essay questions have various requirements.doc", @content_type="application/msword", @headers="Content-Disposition: form-data; name=\"upload[document]\"; filename=\"Essay questions have various requirements.doc\"\r\nContent-Type: application/msword\r\n", @tempfile=#<File:C:/DOCUME~1/Ed/LOCALS~1/Temp/RackMultipart20110423-3980-ycq74p>>}, "commit"=>"Upload", "user_id"=>"1"}
[1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
[1m[36mUpload Load (0.0ms)[0m [1mSELECT "uploads".* FROM "uploads" WHERE ("uploads".uploadable_id = 1 AND "uploads".uploadable_type = 'User')[0m
Rendered uploads/_uploadify.html.erb (15.6ms)
Rendered uploads/_form.html.erb (31.2ms)
Rendered uploads/new.html.erb within layouts/application (46.9ms)
Completed 200 OK in 500ms (Views: 234.4ms | ActiveRecord: 0.0ms)
एप्लिकेशन जहां पेपरक्लिप ठीक काम करता है पर अपलोड मिलता है, मैं इस लॉग मिल
class UploadsController < ApplicationController
before_filter :find_parent
before_filter :prepare_input_params
#respond_to :html, :json, :js
def index
@uploads = Upload.all
#@uploads = @parent.try(:uploads).try(:all)
@upload = Upload.new
#respond_with([@parent, @uploads])
end
def new
@upload = @parent.uploads.new
end
def create
@upload = @parent.uploads.build(params[:upload])
if @upload.save
flash[:notice] = "sucessfully saved upload"
respond_to do |format|
format.html {redirect_to [@parent, :uploads]}
format.json {render :json => { :result => 'success', :upload => polymorphic_url([@parent,:uploads]) } }
end
else
render :action => 'new'
end
end
def edit
@upload = Upload.find(params[:id])
end
def show
"puts @upload.inspect"
@upload = @parent.uploads.find(params[:id])
@total_uploads = @parent.uploads.find(:all, :conditions => { :user_id => @upload.user.id})
end
def update
@upload = Upload.find(params[:id])
if @upload.update_attributes(params[:upload])
flash[:notice] = "Successfully updated document"
redirect_to @upload
else
render :action => 'edit'
end
end
def destroy
@upload = Upload.find(params[:id])
@upload.destroy
redirect_to([@parent, :upload])
end
private
def prepare_input_params
params[:upload][:document] = params[:Filedata] if params[:Filedata]
end
अंत
: दोनों के बीच अंतर यह है कि एक काम नहीं कर रहा बहुरूपी मॉडल है और बहुरूपी मॉडल के लिए नियंत्रक से नीचे है 0यहां आंशिक रूप से आंशिक और अपलोड बिट के साथ जिस्ट फ़ाइल है: https://gist.github.com/940960। फ़ॉर्म में है: html => {: multipart => true}।
सहायता के लिए धन्यवाद।
संपादित:
ऐसा लगता है समस्या मॉडल, uploads.rb से है। जब मैं नीचे दिए गए अनुभाग पर टिप्पणी करता हूं: सबकुछ काम करता है, लेकिन मुझे सत्यापन का उपयोग करने और पथ निर्दिष्ट करने की आवश्यकता है क्योंकि मैं S3 का उपयोग करना चाहता हूं। पेपरक्लिप की प्रारंभिक त्रुटि के बिना मैं कोड को असम्बद्ध कैसे कर सकता हूं इस पर कोई भी नहीं।
class Upload < ActiveRecord::Base
attr_accessible :document
belongs_to :uploadable, :polymorphic => true
has_attached_file :document, :styles => { :small => "150x150>",:thumb => "100x100>" }
=begin
:url => "/uploads/:id/:style/:basename.:extension",
:path => ":rails.root/public/:uploads/:id/:style/:basement.:extension"
validates_attachment_presence :document
validates_attachment_size :document, :less_than => 5.megabytes
validates_attachment_content_type :document, :content_type => ['application/octet-stream','image/jpeg','image/gif', 'image/png', 'image/pdf', 'image/doc',
'video/x-m4v', 'video/quicktime','application/x-shockwave-flash', 'audio/mpeg', 'video/mpeg', 'application/pdf','application/msword']
=end
अंत
अद्यतन:
मुझे लगता है कि मुख्य समस्या यह है कि क्यों एक नई फ़ाइल संलग्न, पेपर क्लिप, किसी भी तरह चुनें "अपलोड" बुला शुरू होता है होने लगते हैं * 'से "। को कॉल करने के बजाय अपलोड करें, नियंत्रक # कार्रवाई दिखाया गया है कि उच्चतर लगता है कि जब भी मैं प्रदान करता हूं, तो यूआरएल और : paperclip है_attached_file विधि के लिए पथ विकल्प। नीचे लॉग देखें:
<%= debug @parent %>
<%= render :partial => "uploads/uploadify" %>
</br>
<%= form_for [parent, upload], :html => { :multipart => true } do |f| %>
<div class="field">
<%= f.label :document %><br />
<%= f.file_field :document %>
</div>
<div class="actions">
<%= f.submit "Upload"%>
</div>
विचारों/अपलोड/new.html:
Processing by UploadsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Azxzi09R7NU7+jxj+lxHFGfs+qw7D6b7yRKegRjRQMc=", "upload"=> {"document"=>#<ActionDispatch::Http::UploadedFile:0x2994ff0 @original_filename="al night verses.txt", @content_type="text/plain", @headers="Content-Disposition: form-data; name=\"upload[document]\"; filename=\"al night verses.txt\"\r\nContent-Type: text/plain\r\n", @tempfile=#<File:C:/DOCUME~1/Ed/LOCALS~1 /Temp/RackMultipart20110505-3444-1rlpnr>>}, "commit"=>"Upload", "user_id"=>"1"}
[1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
[paperclip] C:\ImageMagick-6.6.3-Q16/identify -format %wx%h "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf87.txt[0]"
[paperclip] C:\ImageMagick-6.6.3-Q16/convert "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf87.txt[0]" -resize "150x150>" "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf8720110505-3444-1vnp5jx"
[paperclip] C:\ImageMagick-6.6.3-Q16/identify -format %wx%h "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf87.txt[0]"
[paperclip] C:\ImageMagick-6.6.3-Q16/convert "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf87.txt[0]" -resize "100x100>" "C:/DOCUME~1/Ed/LOCALS~1 /Temp/stream20110505-3444-1cpnf8720110505-3444-1vyk9i"
[1m[36mUpload Load (0.0ms)[0m [1mSELECT "uploads".* FROM "uploads" WHERE ("uploads".uploadable_id = 1 AND "uploads".uploadable_type = 'User')[0m
Rendered uploads/_uploadify.html.erb (15.6ms)
Rendered uploads/_form.html.erb (31.2ms)
Rendered uploads/new.html.erb within layouts/application (62.5ms)
@ CharlieMezak के अनुरोध के आधार पर, यहां विचारों/अपलोड/_form.html.erb है .erb:
<%= render 'form', :parent => @parent, :upload => @upload %>
विचारों/उपयोगकर्ताओं/सूचकांक। एचटीएमएल।ERB:
<%= render "uploads/form", :parent => user, :upload => user.uploads.new %>
अधिक अद्यतन:
की तरह मैं उल्लेख किया है, जब मैं बाहर टिप्पणी : शैलियों,: यूआरएल और: पथ पेपर क्लिप से विकल्पों ** 'has_many_attachment: दस्तावेज़', INSERT कथन को बुलाया जाता है और हालांकि यह संलग्न फ़ाइल को प्रदर्शित करने के बजाय फ़ाइल को सहेजता है, यह वेबसाइट पर प्रामाणिकता टोकन इत्यादि जैसे कई पैरामीटर प्रदर्शित करता है जैसा कि नीचे दिखाया गया है:
attributes:
id: 1
email: [email protected]
encrypted_password: $2a$10$HiksbkRXDtcXiJyUIRj
password_salt: $2a$10$HiksbkRXD
reset_password_token: !!null
remember_token: !!null
remember_created_at: !!null
sign_in_count: 3
current_sign_in_at: '2011-04-25 18:57:27.078125'
last_sign_in_at: '2011-04-25 09:25:31.406250'
current_sign_in_ip: 127.0.0.1
last_sign_in_ip: 127.0.0.1
created_at: '2011-04-09 17:46:15.546875'
updated_at: '2011-04-25 18:57:27.078125'
changed_attributes: {}
previously_changed: {}
attributes_cache: {}
marked_for_destruction: false
destroyed: false
readonly: false
new_record: false
हम वास्तव में आपके प्रपत्र कोड देख सकते हैं? – CharlieMezak
क्या ऑथ टोकन सत्यापित करने के लिए उपयोगकर्ता जानकारी को पकड़ने के लिए 'SELECT' कथन नहीं है? –
@CharlieMezak, इस प्रश्न पर एक बक्षीस रखने के लिए धन्यवाद। फॉर्म आंशिक और अन्य दृश्य फाइलें संलग्न हैं। – brg