Exemple #1
0
    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}
Exemple #2
0
    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}
Exemple #3
0
    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}
Exemple #4
0
 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
Exemple #5
0
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")
Exemple #6
0
 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
Exemple #7
0
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")