videos imagefieldfile how files example django upload uploadify

imagefieldfile - Carga de Django error de lectura de datos de solicitud de error



upload image in django (2)

Tengo una aplicación Django que acepta cargas de jQuery uploadify , un plugin jQ que usa flash para cargar archivos y dar una barra de progreso.

Los archivos de menos de 150k funcionan, pero los archivos más grandes siempre fallan y casi siempre se completan alrededor de 192k (es decir, 3 fragmentos), a veces alrededor de 160k. La excepción que recibo está debajo.

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)

Cuando se ejecuta localmente en el servidor de desarrollo Django, los archivos grandes funcionan.
Intenté configurar mi FILE_UPLOAD_HANDLERS = ("django.core.files.uploadhandler.TemporaryFileUploadHandler",) en caso de que fuera el manejador de carga de memoria, pero no hizo ninguna diferencia.

¿Alguien sabe cómo arreglar esto?


El problema podría ser:

  • su conexión a Internet (algunos servidores de seguridad bloquean cargas grandes, simplemente intente cargar a otro servicio para probar eso).
  • su navegador web (intente deshabilitar flash para ver si funciona)
  • su servidor web (¿tal vez su servidor web prohíbe grandes cargas?)

Entonces ... para ser un poco más útil, tendrás que darnos alguna información sobre qué parte es el problema (debería ser bastante fácil de probar) y si es el servidor web (que supongo) qué tipo de servidor web está corriendo, qué tipo de controlador de Python (mod_wsgi, mod_python, fastcgi, etc.)


Esto es común con MediaTemple: encontré este problema, lo solucioné y de alguna manera se rompe nuevamente. Tiene que lidiar con algo sobre el bloqueo de NFS y las llamadas al sistema utilizadas por los módulos de almacenamiento de django.

... (10 minutos despues) ...

Lo encontré:

Cualquiera que intente ejecutar la última versión de svn 1.1 se habrá dado cuenta de que la corrección anterior ya no funciona porque TemporaryFileUploaderHandler ahora también usa el código de bloqueo. Una solución alternativa hasta que mediatemple y / o django devs resuelvan esto es editar django.core.files.locks y cambiar las dos llamadas a fcntl.lockf por fcntl.flock

Aquí hay un informe de error relevante para cualquiera que esté interesado: http://code.djangoproject.com/ticket/9400

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