CAN'T HOST FILE UPLOAD SAMPLE APP ON HEROKU

Hi, After hosting my sample app for file upload on heroku using the FREE account, it does not work properly. However, everything works fine on my local machine. Please help

FOR FILE UPLOAD:: // controller.rb def uploadFile    if params[:upload] == nil          redirect_to(:action => :home, :notice => "File field must not be empty")     else             name = params[:upload].original_filename                  directory = "keePass/public/data"                       path = File.join(directory, name)                 File.open(path, "wb") { |f| f.write(params[:upload].read) }             redirect_to(:action => :arrive, :notice => "File has been uploaded successfully")     end

end

// view.html.erb <h1>File Upload</h1>

<% form_tag ({:action =>'uploadFile'}, :multipart=>true) do %> <p><label for="upload_file">Select File</label> : <input type="file" name="upload" /><br/> <%= submit_tag "Upload" %> <% end %>

TWO::: FOR DELETING OF UPLOADED FILE(S) //controller.rb def cleanup   file = params[:file]        @numFiles = 0            dir = Dir.entries('keePass/public/data/')                 dirN = Array.new                        dir.each{|x|                                 if File.exist?(x) == false                                        dirN << x                                 end                                }                         if dirN ==                              redirect_to(:action =>:arrive, :notice => 'There are no files in this folder!')                         else                                 dirN.each{|c|                                      File.delete(File.join('keePass/ public/data/',c))                                              @numFiles +=1                                           }                              redirect_to(:action =>:arrive, :notice => " #{@numFiles} File(s) deleted!")                         end end

// view.html.erb <%=link_to 'Delete All Files', :action => :cleanup%>

Heroku does not support file uploads. The filesystem is readonly. You’ll have to host your files somewhere else.

S3 is a common choice: Using AWS S3 to Store Static Assets and File Uploads | Heroku Dev Center

See here: http://devcenter.heroku.com/articles/read-only-filesystem

Hi,

After hosting my sample app for file upload on heroku using the FREE

account, it does not work properly. However, everything works fine on

my local machine. Please help

FOR FILE UPLOAD::

// controller.rb

def uploadFile

if params[:upload] == nil

     redirect_to(:action => :home, :notice => "File field must not

be empty")

else

        name =  params[:upload].original_filename

             directory = "keePass/public/data"

                  path = File.join(directory, name)

            File.open(path, "wb") { |f|

f.write(params[:upload].read) }

        redirect_to(:action => :arrive, :notice => "File has been

uploaded successfully")

end

end

// view.html.erb

File Upload

<% form_tag ({:action =>‘uploadFile’}, :multipart=>true) do %>

Select File :


<%= submit_tag “Upload” %>

<% end %>

TWO::: FOR DELETING OF UPLOADED FILE(S)

//controller.rb

def cleanup

file = params[:file]

   @numFiles = 0

       dir = Dir.entries('keePass/public/data/')

            dirN = Array.new

                   dir.each{|x|

                            if File.exist?(x) == false

                                   dirN << x

                            end

                           }

                    if dirN ==[]

                         redirect_to(:action =>:arrive, :notice =>

‘There are no files in this folder!’)

                    else

                            dirN.each{|c|

                                 File.delete(File.join('keePass/

public/data/',c))

                                         @numFiles +=1

                                      }

                         redirect_to(:action =>:arrive, :notice =>

" #{@numFiles} File(s) deleted!")

                    end

end

// view.html.erb

<%=link_to ‘Delete All Files’, :action => :cleanup%>

Maybe you have reasons why not, but if you use the Paperclip gem, it has easy integration with S3.