2012-02-27 12 views
2

나는 간단한 파일 업로드를 시도하고 있지만 그것을하는 보석을 찾을 수 없다. 그것들은 모두 이미지 주위를 향하고있는 것 같다. 난 그냥 기본 .zip 파일 업로드를 원한다. 누군가가 나에게이 작업을 수행하는 보석이나 나만의 맞춤 설정을하는 자습서 ( 업로드)를 가르쳐 주시겠습니까? 아무도이없는 경우에는, 나는 내 자신의 파일 업로드를 만들 것이다, 그러나 나는 다음과 같은 질문에 직면하고업로드 된 파일의 경로를 데이터베이스에 저장하기

질문 : 나는 데이터베이스에서 파일의 경로를 저장하려면 어떻게

때 사용자가 업로드 버튼을 누르십니까?

양식은 다음과 같이 구성 : 아래

는 시나리오

Title box: 
File select box: 
Upload button: 

데이터베이스 테이블을 두 열로 구성의 title (Title) 및 파일 시스템에 file's path (FilePath)

사용자가 제목을 채우고 시스템에서 파일을 탐색 한 다음 업로드 버튼을 클릭하면 파일에 이 저장되어야합니다 또한 MySQL 데이터베이스에 업로드의 제목뿐만 아니라 같은 다른 페이지에서 /public/uploads/file1.zip.

지금있는 실제 파일의 경로를 쓰는 동안 전자 디스크, /public/uploads/file1.zip을 말할 수, 나는 단순히 검색하기 위해 데이터베이스를 조회 할 수 있습니다 Title과 FilePath는 제목과 사용자가 단순히 클릭하고 다운로드 할 수있는 파일에 대한 링크/경로를 표시합니다.

다음과 같이이 페이지에 표시됩니다

제목 - 27에 대한

그래서 즉, 회의 문서를 다운로드 -

경우 "제목"= 사용자가 제출 파일 제목과 "다운로드를 "= 클릭 할 수있는 실제 링크는 디스크 에서 파일을 검색하고 다운로드를 시작합니다. 이것은 제목과 파일의 경로를 검색하는 데이터베이스에서 하나의 쿼리 여야합니다. 쿼리하는 방법 나는 어떻게하는지 안다. 그것은 특정 파일의 디렉토리를 데이터베이스에 저장하고 사용자가 제출 한 제목을 파일에 업로드하는 것입니다.

모든 제안, 예제 및 리소스를 크게 높이 실 것입니다. 시간 내 줘서 고마워.

답변

1

rails guides에서 uploading files을 읽고 나서 CarrierWave README을 읽습니다. 기본적으로 다음과 같습니다.

# in the model 
mount_uploader :archive, ArchiveUploader, mount_on: :archive_path 

# in the controller action 
@record = YourModel.new(params[:record]) # moves the file from server upload path to CW cache dir 
@record.save # moves the file from CW cache dir to final fs dir, and stores path in mounted_on column 

# in the form 
<%= f.file_field :archive %> 

# in the view 
<%= link_to 'Download', @record.archive_url %> 

파일 시스템 경로는 마운트 할 테이블 열에 저장됩니다.

+0

예, 나는이 건너 온 멋진 screen cast you may want to check

HTH이다. 그러나, 내 질문에 Carrierwave 함께 파일을 업로드 할 파일 시스템에 파일을 저장하고 데이터베이스의 파일 경로를 저장할 수도 있습니다. 답장을 보내 주셔서 감사합니다. – user1104783

+0

나는 대답을 편집했는데, 지금은 명확한가요? – clyfe

+0

네, 고마워요. – user1104783

0

언급 한 바와 같이, carrierwave은 파일을 업로드하는 방법입니다. 원하는대로 carrierwave는 파일을 디스크에 저장하고 db에 경로를 저장합니다.

의 readme 파일 자체는 당신이 그것을 설정하면 세부 사항의 대부분은

그것을 설정하는 권리 매우 간단하고 레일 2.x 및 3.x에서 작동 대부분의 모든 다음

관련 문제