Skip to content

Instantly share code, notes, and snippets.

@perchouli
Created December 22, 2012 13:06
Show Gist options
  • Save perchouli/4358842 to your computer and use it in GitHub Desktop.
Save perchouli/4358842 to your computer and use it in GitHub Desktop.
调用又拍云模块实现上传
# -*- coding: utf-8 -*-
import os
from .upyun import UpYun
class qqFileUploader(object):
def __init__(self, work):
self.work = work
self.allowedExtensions = [".jpg",".png",".jpeg",]
self.sizeLimit = 1024000
self._u = UpYun('空间','username', 'password')
def handleUpload(self, djangoRequest):
uploaded = djangoRequest.read
#get file size
fileSize = int(uploaded.im_self.META["CONTENT_LENGTH"])
#get file name
fileName = uploaded.im_self.META["HTTP_X_FILE_NAME"]
#check first for allowed file extensions
if self._getExtensionFromFileName(fileName) in self.allowedExtensions or ".*" in self.allowedExtensions:
#check file size
if fileSize <= self.sizeLimit:
self._u.writeFile('/%d/%s' % (self.work.id, fileName),djangoRequest.read(fileSize), True)
img_url = 'http://img.synclee.net/%d/%s' % (self.work.id, fileName)
# file.write(djangoRequest.read(fileSize))
return img_url
else:
return '{"error":"File is too large."}'
else:
return '{"error":"File has an invalid extension."}'
def send_cover(self):
return self._u.writeFile(str(self.work.cover.name), self.work.cover.read(), True)
def _getExtensionFromFileName(self,fileName):
import os
filename, extension = os.path.splitext(fileName)
return extension
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment