2010-04-14 3 views
3

jQuery uploadify, 파일을 업로드하고 진행률 표시 줄에 플래시를 사용하는 플러그인을 사용하는 jQ 플러그인에서 업로드를 수락 장고 응용 있어요.Django 업로드 요청에 실패 데이터 읽기 오류

약 150k 미만의 파일이지만 더 큰 파일은 항상 실패하고 거의 항상 약 192k (즉 3 개의 청크)로 완성됩니다. 때로는 약 160k에서 완료됩니다. 내가 얻는 예외는 아래에있다.

exceptions.IOError 
request data read error 
File "/usr/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 171, in _get_post 
    self._load_post_and_files() 
File "/usr/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 137, in _load_post_and_files 
    self._post, self._files = self.parse_file_upload(self.META,  self.environ[\'wsgi.input\']) 
File "/usr/lib/python2.4/site-packages/django/http/__init__.py", line 124, in parse_file_upload 
    return parser.parse() 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 192, in parse 
    for chunk in field_stream: 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 314, in next 
    output = self._producer.next() 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 468, in next 
    for bytes in stream: 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 314, in next 
    output = self._producer.next() 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 375, in next 
    data = self.flo.read(self.chunk_size) 
File "/usr/lib/python2.4/site-packages/django/http/multipartparser.py", line 405, in read 
    return self._file.read(num_bytes) 

Django 개발 서버에서 로컬로 실행할 때 큰 파일이 작동합니다.
메모리 업로드 처리기 인 경우를 대비하여 내 FILE_UPLOAD_HANDLERS = ("django.core.files.uploadhandler.TemporaryFileUploadHandler",) 설정을 시도했지만 아무런 차이가 없습니다.

누구든지 해결 방법을 알고 있습니까?

답변

1

문제가 될 수있다 :

  • 인터넷 연결 (큰 업로드를 차단 일부 방화벽이 단지를 테스트하기 위해 다른 서비스에 업로드 시도).
  • 귀하의 웹 브라우저
  • 웹 서버 (즉 작동하는지 확인하기 위해 플래시를 해제하려고) (아마도 웹 서버는 대용량 업로드를 금지?)

그래서 ...을 좀 더 도움이 당신이해야 할 어떤 부분이 문제인지 (테스트하기 쉽다), 웹 서버라면 (내가 추측하고있는) 웹 서버의 종류, 어떤 종류의 파이썬 처리기 (mod_wsgi, mod_python, fastcgi , etc.)

+0

그냥 anot에 큰 파일을 업로드 테스트 문제없는 그녀의 사이트. 파이썬 2.4, django 1.1, mod_wsgi를 실행 중입니다. 플래시 업 로더없이 업로드를 테스트 해 보겠습니다. – Jake

+0

Django admin 인터페이스 (일반 양식 파일 필드)를 사용하여 동일한 서버에있는 다른 Django 프로젝트에 업로드 할 수 있습니다. 그래서 아마 플래시 또는 uplodify 문제, 나는 그것을 밖으로 작동하도록 어디서부터 시작 해야할지 모르겠다. – Jake

+0

또 다른 업데이트, 나는 uploadify와 동일한 장소에 게시하는 양식을 만들었으며 동일한 오류가 발생합니다. 내 서버가 아니라 내 브라우저 또는 인터넷 연결이 업로드되지 않습니다. 작동하는 프로젝트와 그렇지 않은 프로젝트 사이에서 볼 수있는 주된 차이점은 장고 관리 인터페이스를 사용하여 모델 파일 필드에 업로드하는 것이고 깨진 파일은 다운로드를 폴더에 넣는 것입니다. 하지만 내가 가진 오류는 읽기 오류입니다. – Jake

2

이 문제는 MediaTemple과 공통적 인 문제입니다.이 문제가 발생하여 고쳐졌으며, 어떻게 든 다시 고장났습니다. 그것은 NFS 잠금과 django의 스토리지 모듈에서 사용하는 시스템 호출에 대해 다루어야합니다.

... (10 분 이상) ...

을 찾았

누구나 최신 1.1 SVN 릴리스를 실행하려고은 위에서 더 이상부터 작동 해결 없다는 것을 눈치 챘을 것이다 TemporaryFileUploaderHandler는 이제 잠금 코드도 사용합니다. Mediatemple를 및/또는 장고의 devs까지 해결 방법 밖으로 그림이 fcntl.flock에 fcntl.lockf하는 django.core.files.locks을 편집하고 두 통화를 변경하는 것입니다

여기에 관련된 버그 보고서입니다 관심 사람 : http://code.djangoproject.com/ticket/9400

http://osdir.com/ml/DjangoUsers/2009-06/msg01014.html -> https://forums.mediatemple.net/viewtopic.php?id=2514