小白错误
1.
斜线“\”是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点。就是说,除了程序设计领域外,任何地方都不应该有使用反斜杠的时候,请永远使用正斜线“/”。
粗略想想还真差不多是这么回事,但是马上就想到一朵奇葩:Windows系统中用反斜线“\”来表示目录,但是Linux下用正斜线“/”来表示。估计不少人刚从Windows转到Linux下时都犯过这种错。
写路径的时候 发现windows 和 linuxs 系统 的/ 和 \ 不一样
Windows:
“/”是表示参数,“\”是表示本地路径。
Linux和Unix:
“/”表示路径,“\”表示转义,“-”和“--”表示参数。
网络:
由于网络使用Unix标准,所以网络路径用“/”。
2. Django实现任意文件上传(最简单的方法) 链接地址 http://blog.csdn.net/jiangpf1992/article/details/49406879
3. 通过Ajax方式上传文件,使用FormData进行Ajax请求 。。。form 表单提交
html 代码
- <form id= "uploadForm">
- <p >指定文件名: <input type="text" name="filename" value= ""/></p >
- <p >上传文件: <input type="file" name="file"/></ p>
- <input type="button" value="上传" onclick="doUpload()" />
- </form>
js 代码
- function doUpload() {
- var formData = new FormData($( "#uploadForm" )[0]);
- $.ajax({
- url: 'http://localhost:8080/cfJAX_RS/rest/file/upload' ,
- type: 'POST',
- data: formData,
- async: false,
- cache: false,
- contentType: false,
- processData: false,
- success: function (returndata) {
- alert(returndata);
- },
- error: function (returndata) {
- alert(returndata);
- }
- });
- }
第 2 行 第 6 ,7,8,9 ,10 为必须的参数
4. django 实现文件下载
django中文件下载(HttpResponse) http://blog.csdn.net/w6299702/article/details/38777165
- #文件下载
- def download(request):
- """
- Send a file through Django without loading the whole file into
- memory at once. The FileWrapper will turn the file object into an
- iterator for chunks of 8KB.
- """
- #读取mongodb的文件到临时文件中
- fileid_=request.GET["fileid"]
- filepath_ = ('%s/%s'%(MEDIA_ROOT, fileid_)) #文件全路径
- file_=TFiles.objects.get(fileid=int(fileid_))
- filename_=file_.filename
- filetype_=file_.filetype
- if os.path.isfile(filepath_):
- pass
- else:
- mongoLoad(fileid_)
- #下载文件
- def readFile(fn, buf_size=262144):#大文件下载,设定缓存大小
- f = open(fn, "rb")
- while True:#循环读取
- c = f.read(buf_size)
- if c:
- yield c
- else:
- break
- f.close()
- response = HttpResponse(readFile(filepath_), content_type='APPLICATION/OCTET-STREAM') #设定文件头,这种设定可以让任意文件都能正确下载,而且已知文本文件不是本地打开
- response['Content-Disposition'] = 'attachment; filename='+filename_.encode('utf-8') + filetype_.encode('utf-8')#设定传输给客户端的文件名称
- response['Content-Length'] = os.path.getsize(filepath_)#传输给客户端的文件大小
- return response
- 重要的 是 31 行道 34 行
- 其中 文件的类型 可以直接赋值 filetype 直接富商你想要的类型
form["filepath"]=request.GET['filepath']
form["filename_"]="主机组"
form["filetype_"]=".xls"