attachment_fu를 사용하여 Rails 개발 서버의 사진 데이터베이스에 16kB PNG 이미지를 업로드했고 브라우저에서 Pails 이미지를 볼 수 있습니다. 섬기는 사람. 그래서 그 부분은 잘 작동합니다. , 때로는 PNG 파일의 마지막 4 킬로바이트를 떨어send_file in rails는 클라이언트에게 보낼 때 16KB 파일의 마지막 4KB를 버립니다.
- : 내 아이폰 응용 프로그램에 파일을 다운로드하는 방법 'didReceiveData "에서 수신 된 데이터를 볼 때
, 나는이 문제가 따라서 12kB 만 수신됩니다.
- 그 외의 경우에는 4kB 또는 8kB 만 전송되고 PNG 이미지의 일부는 4kB 또는 8kB가 수신되지 않습니다.
첫 번째는 send_file (buffer_size를 16kB로 변경)에서 매개 변수를 변경하고 서버를 다시 시작하면 발생합니다. 이것은 저에게 개발 서버로 계속해서 어떤 종류의 캐싱이 있다고 생각하게 만듭니다. 그렇지 않으면 매개 변수를 변경하지 않고 서버를 다시 시작하면 위의 # 2가 발생합니다. 시도하고, 내가)
했습니다 개발 서버에서 캐싱을 중지하여 일을 해결하기 위해
는 config/environments/development.rb
에 추가 :
config.cache_classes = true
config.action_controller.perform_caching = false
B) 및 컨트롤러에 다음 코드를 추가 :
: 아래response.headers.delete("Pragma")
response.headers.delete('Cache-Control')
response.headers["Expires"] = "#{1.year.ago}"
는 send_file
이 컨트롤러에서 호출되는 코드
user_photo = Photo.find_by_id(334)
@p = user_photo
send_file("#{RAILS_ROOT}/public" + @p.public_filename,
:disposition => 'inline',
:encoding => 'binary',
:type => @p.content_type,
:stream => false,
:filename => URI.encode(@p.filename),
:buffer_size => 4096
)
내 connectionDidFinishLoading 방법은 다음과 같습니다
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
[theConnectionData release];
}
PNG 이미지가 4kB의에 의해 잘립니다 또는 산발적으로 파일이 전혀 전송되지 않는 이유가 뭘까요?
파일 전송 방식은 웹 서버 및 미들웨어 스택에 따라 크게 다릅니다. 이것은 개발 환경에서 발생하고 있습니다. WEBrick, Mongrol을 사용하고 있습니까? – MDaubs
WEBrick을 사용하고 있습니다. –