Django 整合DWZJs富客户端框架 三 文件上传

下班回来就弄Django上传功能,结果没全部弄好,下面只是个半成品:

今天有时间了,修改了一下上传问题,因为上传表单类型,Window提交后返回的JSON数据会当作document类型而非JSON类型解析,会引发脚本错误。解决方法:设置返回类型问text/html --2011-08-17 21:02

def upload_file(request):
    file = request.FILES.get('uploadfile', None)
    if file:
        name = request.POST['name']
        str_time = time.strftime('%Y-%m-%d_%H%M%S',time.localtime(time.time()))
        fname = file.name;
        fname = str_time + fname[fname.rfind('.'):]
        of = open(settings.FILE_UPLOAD_TEMP_DIR+fname, 'wb+')
        for chunk in file.chunks():
            of.write(chunk)
        of.close()
        photo = Photo(name=name, images_path=settings.FILE_UPLOAD_TEMP_DIR+fname)
        photo.save()
        return HttpResponse(simplejson.dumps({"status":1, "statusCode":1,
"navTabId":request.POST.get('navTabId',None),
"callbackType":request.POST.get('callbackType',None),
"forwardUrl":request.POST.get('forwardUrl',None),"message":u'上传成功',
"data":u'上传成功'}), mimetype="text/html")
   return render_to_response('cms/upload_file.html')
#!/usr/bin/env python
# encoding=utf-8 
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length = 60)
    
    def __unicode(self):
        return self.name

class Article(models.Model):
    title        = models.CharField(u'标题', max_length = 120)
    keywords     = models.CharField(u'关键字', max_length = 100)
    description  = models.CharField(u'描述', max_length = 300)
    content      = models.TextField()
    publish_date  = models.DateTimeField(auto_now=True)
    author       = models.ForeignKey(Author)
    
    def __unicode__(self):
        return self.title
class Photo(models.Model):
    name = models.CharField(u'相片名称', max_length = 80)
    images_path = models.CharField(max_length = 250)
    create_date = models.DateTimeField(auto_now = True)
    
    def __unicode__(self):
        return self.name
<div class="page">
	<div class="pageContent">
	
		<form method="post" action="{% url cms_upload_file %}" enctype="multipart/form-data" class="pageForm required-validate" onsubmit="return iframeCallback(this);">
			<input type="hidden" name="navTabId" value="cms"/> 
                <div class="pageFormContent" layoutH="56">
			    <div class="unit">
				<label>图片名称:</label>
				<input type="text" class="required" size="30"  name="name" value="" />
			</div>
				<p>
					<label>请选择文件:</label>
					<input name="uploadfile" type="file" />
				</p>
			</div>
			<div class="formBar">
			<ul>
				<li><div class="buttonActive"><div class="buttonContent"><button type="submit">确定</button></div></div></li>
				<li><div class="button"><div class="buttonContent"><button type="button" class="close">取消</button></div></div></li>
			</ul>
		</div>
		</form>
	
	</div>
</div>

你可能感兴趣的:(django)