मैं ओपेक्स/तेंदुए पर अपाचे + mod_python 3.3.1 + पायथन 2.6.1 (सभी 64-बिट मोड में चल रहे) के साथ चलाने के लिए अपना पहला Django 1.0.2 एप्लिकेशन पोर्ट करने का प्रयास कर रहा हूं और मैं हूं Django विकास सर्वर के साथ परीक्षण करते समय मौजूद फ़ाइल अपलोड करते समय कभी-कभी त्रुटि का सामना करना पड़ रहा था।Django फ़ाइल अपलोड कभी-कभी असफल हो रहा है
अपलोड करने के लिए कोड क्या Django दस्तावेज़ में वर्णित के समान है:
class UploadFileForm(forms.Form):
file = forms.FileField()
description = forms.CharField(max_length=100)
notifygroup = forms.BooleanField(label='Notify Group?', required=False)
def upload_file(request, date, meetingid):
print date, meetingid
if request.method == 'POST':
print 'before reloading the form...'
form = UploadFileForm(request.POST, request.FILES)
print 'after reloading the form'
if form.is_valid():
try:
handle_uploaded_file(request.FILES['file'], request.REQUEST['date'], request.REQUEST['description'], form.cleaned_data['notifygroup'], meetingid)
except:
return render_to_response('uploaded.html', { 'message': 'Error! File not uploaded!' })
return HttpResponseRedirect('/myapp/uploaded/')
else:
form = UploadFileForm()
return render_to_response('upload.html', {'form': form, 'date':date, 'meetingid':meetingid})
इस कोड को सामान्य रूप से ठीक से काम करता है, लेकिन कभी कभी (जैसे कि, एक बार हर 10 अपलोड) और एक काफी लंबी इंतजार कर समय के बाद, यह निम्न त्रुटि के साथ विफल रहता है:
IOError at /myapp/upload/2009-01-03/1
Client read error (Timeout?)
Request Method: POST
Request URL: http://192.168.0.164/myapp/upload/2009-01-03/1
Exception Type: IOError
Exception Value:
Client read error (Timeout?)
Exception Location: /Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py in read, line 406
Python Executable: /usr/sbin/httpd
Python Version: 2.6.1
Python Path: ['/djangoapps/myapp/', '/djangoapps/', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python26.zip', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/plat-darwin', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/plat-mac', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/lib-tk', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/lib-old', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/lib-dynload', '/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages']
Server time: Sun, 4 Jan 2009 22:42:04 +0100
Environment:
Request Method: POST
Request URL: http://192.168.0.164/myapp/upload/2009-01-03/1
Django Version: 1.0.2 final
Python Version: 2.6.1
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'myapp.application1']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback:
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
86. response = callback(request, *callback_args, **callback_kwargs)
File "/djangoapps/myapp/../myapp/application1/views.py" in upload_file
137. form = UploadFileForm(request.POST, request.FILES)
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/core/handlers/modpython.py" in _get_post
113. self._load_post_and_files()
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/core/handlers/modpython.py" in _load_post_and_files
87. self._post, self._files = self.parse_file_upload(self.META, self._req)
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/__init__.py" in parse_file_upload
124. return parser.parse()
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in parse
134. for item_type, meta_data, field_stream in Parser(stream, self._boundary):
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in __iter__
607. for sub_stream in boundarystream:
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in next
421. return LazyStream(BoundaryIter(self._stream, self._boundary))
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in __init__
447. unused_char = self._stream.read(1)
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in read
300. out = ''.join(parts())
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in parts
293. chunk = self.next()
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in next
315. output = self._producer.next()
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in next
376. data = self.flo.read(self.chunk_size)
File "/Library/Frameworks/Python64.framework/Versions/2.6/lib/python2.6/site-packages/django/http/multipartparser.py" in read
406. return self._file.read(num_bytes)
Exception Type: IOError at /myapp/upload/2009-01-03/1
Exception Value: Client read error (Timeout?)
मैंने mod_wsgi का उपयोग करके सब कुछ चलाने की कोशिश की और कोई फर्क नहीं पड़ता।
क्या कोई जानता है कि मैं क्या गलत कर रहा हूं?
आपकी मदद के लिए अग्रिम धन्यवाद!
ppdo
=====
अपडेट किया गया:
हालांकि मैं, बड़ी फ़ाइलों (60 + एमबी) अपलोड करने में विफल रहता है जब यह यह के आकार के साथ कोई स्पष्ट संबंध के साथ विफल सफल रहा अपलोड करें, यानी यह 10kb फ़ाइलों के साथ भी विफल रहता है जिन्हें सफलतापूर्वक अपलोड किया गया है।
क्षमा करें, यह नहीं है: मैं बड़ी फाइलें अपलोड कर सकता हूं और यह अभी भी छोटे लोगों के साथ विफल रहता है।अद्यतन प्रश्न देखें। फिर भी धन्यवाद। –