def _upload_file(self, image=False): import os import Image from uliweb.contrib.upload import get_url, save_file, get_filename if image: from forms import ImageUploadForm as Form else: from forms import FileUploadForm as Form from uliweb.utils.image import thumbnail_image, fix_filename File = get_model("forumattachment") forum_id = request.GET.get("forum_id") slug = request.GET.get("slug") form = Form() suffix = date.now().strftime("_%Y_%m_%d") if request.method == "GET": form.bind({"is_thumbnail": True}) return {"form": form} else: flag = form.validate(request.values, request.files) if flag: f = form.data["filedata"] _f = os.path.basename(f["filename"]) # 文件格式为forum/<forum_id>/<filename_yyyy_mm_dd> filename = fix_filename("forum/%s/%s" % (forum_id, _f), suffix) if image: filename = save_file(filename, f["file"]) if form.data["is_thumbnail"]: # process thumbnail rfilename, thumbnail = thumbnail_image( get_filename(filename, filesystem=True), filename, settings.get_var("PARA/FORUM_THUMBNAIL_SIZE"), ) _file = get_url(thumbnail) else: _file = get_url(filename) name = get_url(filename) else: filename = save_file(filename, f["file"]) _file = get_url(filename) name = form.data["title"] if not name: name = _f ff = File(slug=slug, file_name=filename, name=name) ff.save() return """<script type="text/javascript"> var url='%s||%s'; setTimeout(function(){callback(url);},100); </script> """ % ( _file, name, ) else: return {"form": form}
def _upload_file(self, image=False, show_filename=True): import os import Image from uliweb.contrib.upload import get_url, save_file, get_filename if image: from forms import ImageUploadForm as Form else: from forms import FileUploadForm as Form from uliweb.utils.image import thumbnail_image, fix_filename File = get_model('forumattachment') forum_id = request.GET.get('forum_id') slug = request.GET.get('slug') form = Form() suffix = date.now().strftime('_%Y_%m_%d') if request.method == 'GET': form.bind({'is_thumbnail': True}) return {'form': form} else: flag = form.validate(request.values, request.files) if flag: f = form.data['filedata'] _f = os.path.basename(f['filename']) #文件格式为forum/<forum_id>/<filename_yyyy_mm_dd> filename = fix_filename('forum/%s/%s' % (forum_id, _f), suffix) if image: filename = save_file(filename, f['file']) if form.data['is_thumbnail']: #process thumbnail rfilename, thumbnail = thumbnail_image( get_filename(filename, filesystem=True), filename, settings.get_var('PARA/FORUM_THUMBNAIL_SIZE')) _file = get_url(thumbnail) else: _file = get_url(filename) name = get_url(filename) else: filename = save_file(filename, f['file']) _file = get_url(filename) name = form.data['title'] if not name: name = _f ff = File(slug=slug, file_name=filename, name=name) ff.save() if show_filename: fargs = '||%s' % name else: fargs = '' return '''<script type="text/javascript"> var url='%s%s'; setTimeout(function(){callback(url);},100); </script> ''' % (_file, fargs) else: return {'form': form}
def _upload_file(self, image=False, show_filename=True): import os import Image from uliweb.contrib.upload import get_url, save_file, get_filename if image: from forms import ImageUploadForm as Form else: from forms import FileUploadForm as Form from uliweb.utils.image import thumbnail_image, fix_filename File = get_model('forumattachment') forum_id = request.GET.get('forum_id') slug = request.GET.get('slug') form = Form() suffix = date.now().strftime('_%Y_%m_%d') if request.method == 'GET': form.bind({'is_thumbnail':True}) return {'form':form} else: flag = form.validate(request.values, request.files) if flag: f = form.data['filedata'] _f = os.path.basename(f['filename']) #文件格式为forum/<forum_id>/<filename_yyyy_mm_dd> filename = fix_filename('forum/%s/%s' % (forum_id, _f), suffix) if image: filename = save_file(filename, f['file']) if form.data['is_thumbnail']: #process thumbnail rfilename, thumbnail = thumbnail_image(get_filename(filename, filesystem=True), filename, settings.get_var('PARA/FORUM_THUMBNAIL_SIZE')) _file = get_url(thumbnail) else: _file = get_url(filename) name = get_url(filename) else: filename = save_file(filename, f['file']) _file = get_url(filename) name = form.data['title'] if not name: name = _f ff = File(slug=slug, file_name=filename, name=name) ff.save() if show_filename: fargs = '||%s' % name else: fargs = '' return '''<script type="text/javascript"> var url='%s%s'; setTimeout(function(){callback(url);},100); </script> ''' % (_file, fargs) else: return {'form':form}
def keepFile(self): absoluteFileName = "%s%s" % (self.identifier, os.path.splitext(self.fileName)[1]) fileFullPath = os.path.join(self.filePath, absoluteFileName) save_file(fileFullPath, self.fileObj.stream, replace=True, convert=False) ResumeFile.saveDB(self.identifier, self.username, self.type, settings.TRANSFERSTATUS.init, fileFullPath, self.fileName) return True
def upload(): if require_login(): return redirect(url_for(login)) from uliweb.contrib.upload import save_file,get_href if request.method == 'POST': ret = save_file(request.files['files'].filename,request.files['files'].stream) url = get_href(ret) return json({'success':True, 'filename':request.files['files'].filename, 'url':url}, content_type="text/html;charset=utf-8")
def keepChunk(self, chunkNum=None): chunkFullPath = os.path.join( self.filePath, '%s_%s.temp' % (self.identifier, chunkNum)) save_file(chunkFullPath, self.fileObj.stream, replace=True, convert=False) if (self.currentChunk >= self.totalChunk): absoluteFileName = "%s%s" % (self.identifier, os.path.splitext(self.fileName)[1]) wf = open(os.path.join(self.filePath, absoluteFileName), 'wb') for i in range(self.totalChunk): if os.path.exists( os.path.join(self.filePath, '%s_%s.temp' % (self.identifier, i + 1))): tempFile = open( os.path.join(self.filePath, '%s_%s.temp' % (self.identifier, i + 1)), 'rb') with open( os.path.join( self.filePath, '%s_%s.temp' % (self.identifier, i + 1)), 'rb') as tempFile: wf.write(tempFile.read()) os.remove( os.path.join(self.filePath, '%s_%s.temp' % (self.identifier, i + 1))) else: print "----chunk file missing %s_%s.temp" % ( self.identifier, i + 1) return json( { 'status': 'err', 'msg': 'missing chunk %s' % i + 1 }, status=400) wf.close() ruModel = get_model('resumableUpload') ruModel.filter(ruModel.c.guid == self.identifier).update(state=1) ResumeFile.saveDB(self.identifier, self.username, 2, settings.TRANSFERSTATUS.init, os.path.join(self.filePath, absoluteFileName), self.fileName) return True
def upload(): if require_login(): return redirect(url_for(login)) from uliweb.contrib.upload import save_file, get_href if request.method == 'POST': ret = save_file(request.files['files'].filename, request.files['files'].stream) url = get_href(ret) return json( { 'success': True, 'filename': request.files['files'].filename, 'url': url }, content_type="text/html;charset=utf-8")