Let the attachment filename be specified on upload (#12125).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10678 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
79c1ec7adc
commit
251f263abd
|
@ -84,7 +84,7 @@ class AttachmentsController < ApplicationController
|
||||||
|
|
||||||
@attachment = Attachment.new(:file => request.raw_post)
|
@attachment = Attachment.new(:file => request.raw_post)
|
||||||
@attachment.author = User.current
|
@attachment.author = User.current
|
||||||
@attachment.filename = Redmine::Utils.random_hex(16)
|
@attachment.filename = params[:filename].presence || Redmine::Utils.random_hex(16)
|
||||||
|
|
||||||
if @attachment.save
|
if @attachment.save
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|
|
@ -117,6 +117,18 @@ class ApiTest::AttachmentsTest < ActionController::IntegrationTest
|
||||||
assert_equal token, attachment.token
|
assert_equal token, attachment.token
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "POST /uploads.xml should accept :filename param as the attachment filename" do
|
||||||
|
set_tmp_attachments_directory
|
||||||
|
assert_difference 'Attachment.count' do
|
||||||
|
post '/uploads.xml?filename=test.txt', 'File content', {"CONTENT_TYPE" => 'application/octet-stream'}.merge(credentials('jsmith'))
|
||||||
|
assert_response :created
|
||||||
|
end
|
||||||
|
|
||||||
|
attachment = Attachment.order('id DESC').first
|
||||||
|
assert_equal 'test.txt', attachment.filename
|
||||||
|
assert_match /_test\.txt$/, attachment.diskfile
|
||||||
|
end
|
||||||
|
|
||||||
test "POST /uploads.xml should not accept other content types" do
|
test "POST /uploads.xml should not accept other content types" do
|
||||||
set_tmp_attachments_directory
|
set_tmp_attachments_directory
|
||||||
assert_no_difference 'Attachment.count' do
|
assert_no_difference 'Attachment.count' do
|
||||||
|
|
Loading…
Reference in New Issue