Alex Greif
alex.greif at gmail.com
Sat Oct 14 11:54:48 EDT 2006
Hi I use the following snippet to upload my files. Additionally a foldername is given, but this is only my usecase: def uploadFile(req, myFile=None, folderName=None): """ Uploads the file and then the file will be written in the given folder. """ req.content_type = "text/html" folderPath = _util.getUploadFolderPath( \ uploadRootPath=config.upload_root_path, folder=folderName) fileName = myFile.filename.replace('\\','/').split('/')[-1] req.log_error("httpUpload.uploadFile file: %s/%s" % (folderName,fileName), apache.APLOG_INFO) filePath = os.path.join(folderPath, fileName) fileHandle = open(filePath, 'wb') size = 0 while True: data = myFile.file.read(8192) if not data: break fileHandle.write(data) size += len(data) #~ req.log_error("%s - write chunk" % myFile.filename, apache.APLOG_INFO) fileHandle.close() os.chmod(filePath, stat.S_IREAD | stat.S_IWRITE | stat.S_IRGRP | stat.S_IWGRP) template = psp.PSP(req, filename='_httpupload/psp/uploadFinished.psp') template.run({ 'size':size, 'fileName':fileName, 'folderName':folderName, 'type':myFile.type}) HTH Alex. On 10/14/06, Dave Britton <dave at davebritton.com> wrote: > > > What is the way to use mod_python.utils to get a file object create and > uploaded from an html form? I can't quite get my head around it and I can't > find any useful snippets of code to copy. I'd appreciate any help, > especially an example. Thanks! > > Say I have an html form like this: > """<form action="upload" method="POST" enctype="multipart/form-data"> > File name: <input name="file" type="file"><br> > <input name="submit" type="submit" value = "Send this file to the web > server"> > </form>""" > > What does upload.py have to do to process the file whose name is submitted? > > the only cookbook version I have found is for regular python in cgi mode: > > ================== > form = cgi.FieldStorage() > if not form.has_key(form_field): > print HTML_TEMPLATE2% {'SCRIPT_NAME':os.environ['SCRIPT_NAME']} > return > fileitem = form[form_field] > if not fileitem.file: > return > fname=os.path.basename(fileitem.filename) > print "fileitem.filename=%s,<br> uploadddir=%s,<br> fout=%s" \ > %(fileitem.filename, upload_dir, os.path.join(upload_dir, fname) ) > > fout = file (os.path.join(upload_dir, fname), 'wb') > while 1: > chunk = fileitem.file.read(100000) > if not chunk: break > fout.write (chunk) > fout.close() > =============== > How do I adapt this to use mod_python FieldStorage ? Especially for early > mod_python as the installation I need this for has version 2.7 on Apache > 1.3, debian linux > > > Dave Britton > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python > > >
|