Hi Team,
I have create one ruby on rails application ,i have one issue for
that image upload ,the image will override the some user , so any can
solve
the issues
contoller
class PhotosController < ApplicationController
GET /photos
GET /photos.xml
def index
@photos = Photo.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @photos }
end
end
GET /photos/1
GET /photos/1.xml
def show
@photo = Photo.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @photo }
end
end
GET /photos/new
GET /photos/new.xml
def new
@photo = Photo.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @photo }
end
end
GET /photos/1/edit
def edit
@photo = Photo.find(params[:id])
end
POST /photos
POST /photos.xml
def create
@photo = Photo.new(params[:photo])
respond_to do |format|
if @photo.save
format.html { redirect_to(@photo, :notice => 'Photo was
successfully
created.’) }
format.xml { render :xml => @photo, :status => :created,
:location
=> @photo }
else
format.html { render :action => “new” }
format.xml { render :xml => @photo.errors, :status =>
:unprocessable_entity }
end
end
end
PUT /photos/1
PUT /photos/1.xml
def update
@photo = Photo.find(params[:id])
respond_to do |format|
if @photo.update_attributes(params[:photo])
format.html { redirect_to(@photo, :notice => 'Photo was
successfully
updated.’) }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @photo.errors, :status =>
:unprocessable_entity }
end
end
end
DELETE /photos/1
DELETE /photos/1.xml
def destroy
@photo = Photo.find(params[:id])
@photo.destroy
respond_to do |format|
format.html { redirect_to(photos_url) }
format.xml { head :ok }
end
end
end
class Photo < ActiveRecord::Base
Root directory of the photo public/photos
PHOTO_STORE = File.join RAILS_ROOT, ‘public’, ‘images’
Invoke save_photo method when save is completed
after_save :save_photo
def load_photo_file=(data)
# Record the filename
self.filename = data.original_filename
# Store the data for later use
@photo_data = data
end
name = File.join PHOTO_STORE, self.filename
File.open(name, 'wb') do |f|
f.write(@photo_data.read)
end
@photo_data = nil
end
end
end
def fileexist
if FileTest.exists?(RAILS_ROOT + “public/images/#{@photo_data}”)
render :text => "yes"
else
render :text => "no "
end
end
Filename | |
---|---|
<%=h photo.filename %> | <%= image_tag photo.filename%> |
<%= link_to 'New ', new_photo_path %>