广告位 |
django与百度ueditor 结合
2021年9月25日 19:12编程 > 2389人已围观
简介 django与百度ueditor 结合实现文件上传,图片上传。但还有如下功能没实现: 1. 在线涂鸦后,图片的保存,并显示 2. 图片的在线管理,浏览(目录递归浏览) 3. 在线视频搜索 4. 远程抓图...
django与百度ueditor 结合实现文件上传,图片上传。但还有如下功能没实现:
1. 在线涂鸦后,图片的保存,并显示
2. 图片的在线管理,浏览(目录递归浏览)
3. 在线视频搜索
4. 远程抓图
在看测试代码之前,请注意在django程序的settings.py 中配置:
MEDIA_ROOT = os.path.join(os.path.dirname(__file__),'static/upload/').replace('\\','/'),
这是我的配置,你可以改成适合你的配置。
今天又抽了一个小时,参考了下java 的代码,将上面的四个功能也实现,有需要的朋友可以参考. 同样在前面文章的基础上,在views.py 里面添加代码:
在线涂鸦
@csrf_exempt
def ueditor_ScrawUp(request):
""" 涂鸦文件,处理 """
print request
param = request.POST.get("action",'')
fileType = [".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp"];
if param=='tmpImg':
fileObj = request.FILES.get('upfile', None)
source_pictitle = request.POST.get('pictitle','')
source_filename = request.POST.get('fileName','')
response = HttpResponse()
myresponse = __myuploadfile(fileObj, source_pictitle, source_filename,'pic')
myresponsedict=dict(myresponse)
url=myresponsedict.get('url','')
response.write("<script>parent.ue_callback('%s','%s')</script>" %(url,'SUCCESS'))
return response
else:
#========================base64上传的文件=======================
base64Data = request.POST.get('content','')
subfolder = time.strftime("%Y%m")
if not os.path.exists(settings.MEDIA_ROOT[0] + subfolder):
os.makedirs(settings.MEDIA_ROOT[0] + subfolder)
file_name = str(uuid.uuid1())
path = str(subfolder + '/' + file_name + '.' + 'png')
phisypath = settings.MEDIA_ROOT[0] + path
f=open(phisypath,'wb+')
f.write(base64.decodestring(base64Data))
f.close()
response=HttpResponse()
response.write("{'url':'%s',state:'%s'}" % ('/static/upload/' + subfolder + '/' + file_name + '.' + 'png','SUCCESS'));
return response
图片的在线管理,浏览(目录递归浏览)
def listdir(path,filelist):
""" 递归 得到所有图片文件信息 """
phisypath = settings.MEDIA_ROOT[0]
if os.path.isfile(path):
return '[]'
allFiles=os.listdir(path)
retlist=[]
for cfile in allFiles:
fileinfo={}
filepath=(path+os.path.sep+cfile).replace("\\","/").replace('//','/')
if os.path.isdir(filepath):
listdir(filepath,filelist)
else:
if cfile.endswith('.gif') or cfile.endswith('.png') or cfile.endswith('.jpg') or cfile.endswith('.bmp'):
filelist.append(filepath.replace(phisypath,'/static/upload/').replace("//","/"))
@csrf_exempt
def ueditor_imageManager(request):
""" 图片在线管理 """
filelist=[]
phisypath = settings.MEDIA_ROOT[0]
listdir(phisypath,filelist)
imgStr="ue_separate_ue".join(filelist)
response=HttpResponse()
response.write(imgStr)
return response
在线视频搜索
@csrf_exempt
def ueditor_getMovie(request):
""" 获取视频数据的地址 """
content ="";
searchkey = request.POST.get("searchKey");
videotype = request.POST.get("videoType");
try:
url = "http://api.tudou.com/v3/gw?method=item.search&appKey=myKey&format=json&kw="+ searchkey+"&pageNo=1&pageSize=20&channelId="+videotype+"&inDays=7&media=v&sort=s";
content=urllib2.urlopen(url).read()
except Exception,e:
pass
response=HttpResponse()
response.write(content);
return response
远程抓图,将别人网站的图片保存到本地,并显示出来
@csrf_exempt
def ueditor_getRemoteImage(request):
print request
""" 把远程的图抓到本地,爬图 """
file_name = str(uuid.uuid1())
subfolder = time.strftime("%Y%m")
if not os.path.exists(settings.MEDIA_ROOT[0] + subfolder):
os.makedirs(settings.MEDIA_ROOT[0] + subfolder)
#====get request params=================================
urls = str(request.POST.get("upfile"));
urllist=urls.split("ue_separate_ue")
outlist=[]
#====request params end=================================
fileType = [".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp"];
for url in urllist:
fileExt=""
for suffix in fileType:
if url.endswith(suffix):
fileExt=suffix
break;
if fileExt=='':
continue
else:
path = str(subfolder + '/' + file_name + '.' + fileExt)
phisypath = settings.MEDIA_ROOT[0] + path
piccontent= urllib2.urlopen(url).read()
picfile=open(phisypath,'wb')
picfile.write(piccontent)
picfile.close()
outlist.append('/static/upload/' + subfolder + '/' + file_name + '.' + fileExt)
outlist="ue_separate_ue".join(outlist)
response=HttpResponse()
myresponse="{'url':'%s','tip':'%s','srcUrl':'%s'}" % (outlist,'成功',urls)
response.write(myresponse);
return response
更新 urls.py
url(r'^ueditor_imgup$','MyNet.app.Ueditor.views.ueditor_ImgUp'),
url(r'^ueditor_fileup$','MyNet.app.Ueditor.views.ueditor_FileUp'),
url(r'^ueditor_getRemoteImage$','MyNet.app.Ueditor.views.ueditor_getRemoteImage'),
url(r'^ueditor_scrawlUp$','MyNet.app.Ueditor.views.ueditor_ScrawUp'),
url(r'^ueditor_getMovie$','MyNet.app.Ueditor.views.ueditor_getMovie'),
url(r'^ueditor_imageManager$','MyNet.app.Ueditor.views.ueditor_imageManager'),
更改ueditor config 配置文件
,imageUrl:"/ueditor_imgup"
,imagePath:""
//涂鸦图片配置区
,scrawlUrl:"/ueditor_scrawlUp"
,scrawlPath:""
//附件上传配置区
,fileUrl:"/ueditor_fileup"
,filePath:""
//远程抓取配置区
,catcherUrl:"/ueditor_getRemoteImage"
,catcherPath:""
//图片在线管理配置区
,imageManagerUrl:"/ueditor_imageManager"
,imageManagerPath:""
//屏幕截图配置区
,snapscreenHost: '127.0.0.1'
,snapscreenServerUrl: "/ueditor_imgup"
,snapscreenPath: ""
//word转存配置区
,wordImageUrl:"/ueditor_imgup"
,wordImagePath:""
//获取视频数据的地址
,getMovieUrl:"/ueditor_getMovie"
到此为止,将所有需要集成的都集成了。
上一篇: 智能快递柜是否能成为物流末端的“主流”?
下一篇: 波多野结衣也站台区块链了?
广告位 |
相关文章
随机图文
-
一些噎死人的句子,句句精辟犀利
不管你多大年龄,是什么性格的人,只要你有太容易相信人的特点,你就拥有了绝对死穴。 01 见识越广,计较越少,经历越多,抱怨越少,越闲,越矫情。 02 善良和爱都是免费的,但不是廉价的。 你的善良... -
胡锡进:孟晚舟以不认罪的方式获释
胡锡进写道:“过去的1000多天对她来说是颠覆性的,对国际关系来说也是颠覆性的。然而在中国政府的强大协助下,孟晚舟最终以不认罪的方式得以获释,这令人欣慰。与前法国阿尔斯通公司高管弗雷德里克·皮耶鲁齐当年在美国被判刑并受到5年监禁,以及阿尔斯通公司付出高额罚金、并被迫将核心业务出售给美国通用公司相比,孟晚舟和华为都幸运得多。”... -
iPhone 13系列配备了更大的电池
随着所有四款iPhone 13都开始在世界各地发售,YouTube上开始出现了对这些设备的拆解。值得注意的是,拆解显示了所有四款机型的电池容量。... -
献礼祖国72华诞:有一种骄傲,叫我是中国人!
金秋十月迎国庆,礼炮声声震天下! 今天,2021年10月1日,是祖国七十二周年华诞,是亿万中国同胞普天同庆的好日子! 家是最小国,国是千万家!没有国,哪有家?没有家,哪有你我!...