TheBrain نشر 17 يناير 2016 أرسل تقرير نشر 17 يناير 2016 أريد قراءة ملفات مرفوعة من قبل المستخدم بدون حفظها إلى قاعدة البيانات، ولقد جربت طرق عديدة من بينها هذه: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 %> اقتباس
0 هشام رزق الله نشر 17 يناير 2016 أرسل تقرير نشر 17 يناير 2016 الحل الذي توصلتَ إليه قريب من الحل الصحيح، تأكد من نوع صنف 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 اقتباس
السؤال
TheBrain
أريد قراءة ملفات مرفوعة من قبل المستخدم بدون حفظها إلى قاعدة البيانات، ولقد جربت طرق عديدة من بينها هذه:
لكن جميع محاولاتي باءت بالفشل، فما الطريقة الصحيحة لفعل ذلك في ريلز؟
الشيفرة البرمجية الخاصة بالعرض:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.