اذهب إلى المحتوى
  • 0

كيف أقرأ ملف مرفوع بدون حفظه إلى قاعدة البيانات في ريلز؟

TheBrain

السؤال

أريد قراءة ملفات مرفوعة من قبل المستخدم بدون حفظها إلى قاعدة البيانات، ولقد جربت طرق عديدة من بينها هذه:

File.read(params[:uploaded_file])

لكن جميع محاولاتي باءت بالفشل، فما الطريقة الصحيحة لفعل ذلك في ريلز؟
الشيفرة البرمجية الخاصة بالعرض:

<% form_for(:uploaded_file, @feed, :url => {:action=>'parse'}, :html=> {:multipart=>true}) do |f| %>  <p>
    <%= f.label :uploaded_file, 'Upload your file.' %><br />
    <%= f.file_field :uploaded_file %>
  </p>
  <p><%= f.submit 'upload' %></p>
<% end %>
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الحل الذي توصلتَ إليه قريب من الحل الصحيح، تأكد من نوع صنف params[:uploaded_file] والذي سيكون في العادة إما كائن StringIO أو Tempfile وكلاهما يتصرف كالملفات يمكنك قراءتهم عن طريق استخدام توابع read ألخاصة بهم.
وللتأكد من نوع الصنف (نوع صنف params[:uploaded_file] حسب ما تستخدم من Mongrel أو Passenger أو Webrick) يمكنك استخدام هذه الشيفرة البرمجية:

# Note: use form validation to ensure that
#  params[:uploaded_file] is not null

file_data = params[:uploaded_file]
if file_data.respond_to?(:read)
  xml_contents = file_data.read
elsif file_data.respond_to?(:path)
  xml_contents = File.read(file_data.path)
else
  logger.error "Bad file_data: #{file_data.class.name}: #{file_data.inspect}"
end
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...