|
|
|
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Как организовать загрузку файла от юзера?
Например, картинку на сервер. С использованием RoR. Добавлено @ 20:58 Вот, нашел кое-что: http://sean.treadway.info/demo/upload/ |
|||
|
||||
rubyclub |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 26.2.2007 Где: Odessa/Ukraine Репутация: нет Всего: 2 |
Так ты интересуешься лии расказываешь как это сделать ...???
|
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
nwlad |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2007 Репутация: нет Всего: нет |
Вот на английском:
1. In a Terminal or command prompt window, type the following command: ruby script/generate migration AddPhotoColumn 2. Open the newly created 003_add_photo_column.rb file that was added under /db/migrate and modify it to look like the following: class AddPhotoColumn < ActiveRecord::Migration def self.up add_column :classifieds, :content_type, :string :default => "image/png" execute 'ALTER TABLE classifieds ADD COLUMN picture LONGBLOB' end def self.down remove_column :classifieds, :content_type remove_column :classifieds, :picture end end All you do in this file is to tell Rails to add two new columns to the classifieds table called picture and content_type. You are setting the picture column’s type to be LONGBLOB, which is a MySQL-specific column type for storing large amounts of noncharacter data such as images. LONGBLOB is not a default migration type for Rails (there is a migration database called :binary for the BLOB datatype), hence having to use some actual SQL commands to add the second column. Since there is a chance that an image might be more than 65KB, using LONGBLOB is a better solution. The content_type field stores the data type of the uploaded image, which gives the browser a hint of what type of file you are trying to work with so it knows how to render it. 3. Save the changes to your migration file and then run rake migrate in the Terminal or command prompt window. Your new column should now be created. Let’s continue with the quest of enabling a seller to upload an image when creating a new classified. The first thing you should do is update your new classified view. 4. Open up the new.rhtml file in app/views/classified and add the following code before the submit_tag line: <p><label for="classified_picture">Picture</label><br /> <%= file_field 'classified', 'pictureimg' %></p> This snippet of code introduces the file_field helper. The helper works just like a text_field helper, but instead returns an input tag of the “file” type instead of “text”. 5. Next, modify your start_form_tag to have the :multipart parameter set to true by changing the start_form_tag line to the following: <%= start_form_tag ({:action => 'create'}, :multipart => true) %> By setting the multipart parameter, you ensure that your action properly passes along the binary data from the file field to the database. 6. Next, open up the classified.rb in the app/models file and the following methods to it just above the protected keyword: def pictureimg=(picture_field) return if picture_field.blank? self.content_type = picture_field.content_type.chomp self.picture = picture_field.read end Save your changes. The purpose of the pictureimg accessor method is to take the data from the file_field helper in our view and then associate the uploaded image’s content type with our content_type field and the image itself with our picture field. < просьба всем: давая ответы будте конкретны, пишите по существу. > Это сообщение отредактировал(а) nwlad - 23.3.2007, 14:04 |
|||
|
||||
MeFistofeL |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.6.2006 Репутация: нет Всего: нет |
Во вьюшке добавляеш
В контроллере
И всё в принципе |
||||
|
|||||
rubyclub |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 71 Регистрация: 26.2.2007 Где: Odessa/Ukraine Репутация: нет Всего: 2 |
Вот написал тоже статью по этому поводу.
В двух словах скажу что не обойтись таким примером как привели выше, естьеще одна особенность когда размер файла больше 10 кб тогда он храниться в временном файле, иначе он в буфере.
Я написал клас спеуиально чтобы ббыло удобно заботать с загрузкой файлов, проверять размер перед загрузкой тиф файлов и дт. вот прикрепил может скачать и посомтреть. Вопросы можешь задавать здесь http://rubyclub.com.ua/messages/show/62 Присоединённый файл ( Кол-во скачиваний: 20 ) upload.rb 3,07 Kb |
|||
|
||||
MPie |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.5.2007 Репутация: нет Всего: 1 |
Копайте в сторону плагина acts_as_attachment.
IMHO, решает большинство проблем, связанных с загрузкой файла. Только с Аяксом не дружит... |
|||
|
||||
wladk |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 11.4.2007 Репутация: нет Всего: нет |
Что-то я торможу:(
Есть поле на шаблоне
Есть код в контроллере
Мелкие файлы грузяться, 109к грузится на половину. Пытался реализовать различные ветки в зависимости от способа хранения, но чувствую себя индусом - копировать получается понимать нет:(
Напишите кусок кода, как оно должно быть, потому как мысль стоит как вкопанная:( Спасибо! |
||||||
|
|||||||
wladk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 11.4.2007 Репутация: нет Всего: нет |
Ну вообщем нашел проблемму. Была она в старой версии MySQL, 3,21 что ли.... Поле я создал как :binary и в него влазило 64к. Остальное совершенно молча обрезалось. После обновления субд моментально вывалилась ощибка про то что данных слишком много для данного поле. Поменял тип поля и все заработало.
Если это кому-то интересно.... |
|||
|
||||
andron |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 14.8.2007 Репутация: нет Всего: нет |
У меня появилась проблемка связанная с загрузкой файлов.
Пользуюсь NetBeans оттуда загружаю webrick, большие файлы не хочет загружать в БД ни в какую. Выскакивает ошибка:
или такая
В MySQL с типами данных все в порядке. Но когда загрузил webrick через консоль cmd все заробатало все загружается. Это хорошо когда все работает, но хочется вызывать webrick через NetBeans, что удобнее. Помогите разобраться |
||||
|
|||||
kronos_vano |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
>if @up_file.instance_of?(Tempfile)
не правильно! В монгреле файлы до 9-10 килобайт имеют тип StringIO. Я сделал аплоад файлов через аякс, с проверкой размера и прогресс баром под монгрел (юзал монгрел аплоад прогресс гем). Если кому интересно могу рассказать что и как |
|||
|
||||
andron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 14.8.2007 Репутация: нет Всего: нет |
Проблема загрузки файла в БД при рыботе с Safari
прописывает ошибку: #<ArgumentError: nagative length -42 given> В чем причина? В других браузерах работает все нормально все нашел проблема с Safari, не понимает по-русски Это сообщение отредактировал(а) andron - 12.9.2007, 16:44 |
|||
|
||||
OmeZ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
||||
|
||||
G61 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.11.2007 Репутация: нет Всего: нет |
||||
|
||||
OmeZ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
Народ, я нашел проблему обрезки файла! Есть в стандартной дукументации, цитирую
Это сообщение отредактировал(а) OmeZ - 5.11.2007, 10:00 |
|||
|
||||
Правила форума "Ruby on Rails" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby On Rails | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |