Hi All, I'm trying to allow some flexibility for my end users. I want to support the uploading of multiple file archive types (tar.gz, tar.bzip2, zip, rar etc). I want to use python-magic to guess the filetype from the files magic number and then use the appropriate decompression modules to get at the data in the files. Basically, I'm not sure how to make the type of the request.FILES['datafile'] be compatible with the requirements of python-magic (which needs a file-location or a string)
I have a view: def upload_file(request): c ={} c.update(csrf(request)) if request.method == 'POST': frag = request.FILES['datafile'].read(65536) ft = magic.from_buffer(frag) res = {} res.update({ "result" : ft }) res.update({ "datafile" : type(request.FILES['datafile']) }) res.update({ "frag" : type(frag) }) return render_to_response("simple.html", {'content': res }) else: form = UploadFileForm() return render_to_response('upload.html') "simple.html" just outputs the data structure "res", as below. {'content': {'datafile': <class 'django.core.files.uploadedfile.TemporaryUploadedFile'>, 'frag': <type 'str'>, 'result': 'empty'}} I've tried different combinations of magic.from_file and magic.from_buffer and both read() and chunk() from the TemporaryUploadedFile object but I either get a type error or an "empty" result. I think the above should work fine! Using python-magic on the temp object that's been uploaded (and saved to disk 'cos is > 2.5MB) works with both magic.from_buffer(open("f").read(65536)) and magic.from_file("f"). Any ideas? (also, anyone have any quick drop in helper methods for debugging I can use instead of the horrible "res" dict I'm using?) Thanks in advance Wa -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.