当前位置:首页 » 文件管理 » django上传文件

django上传文件

发布时间: 2022-01-12 00:16:49

⑴ django上传文件到远程服务器,怎么整

使用的是WebClient而不是ftp

首先,我们先来定义一个类UpLoadFile,这个类就是文件上传类。代码如下:

public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)

{

int indexOf = 0;

if (fileNamePath.Contains(@"\"))

{

indexOf = fileNamePath.LastIndexOf(@"\");

}

else if (fileNamePath.Contains("/"))

{

indexOf = fileNamePath.LastIndexOf("/");

}

string fileName = fileNamePath.Substring(indexOf + 1);

string NewFileName = fileName;

if (IsAutoRename)

{

NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));

}

string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);

if (uriString.EndsWith("/") == false) uriString = uriString + "/";

uriString = uriString + NewFileName;

/// 创建WebClient实例

WebClient myWebClient = new WebClient();

myWebClient.Credentials = CredentialCache.DefaultCredentials;

// 要上传的文件

FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);

//FileStream fs = OpenFile();

BinaryReader r = new BinaryReader(fs);

byte[] postArray = r.ReadBytes((int)fs.Length);

Stream postStream = myWebClient.OpenWrite(uriString, "PUT");

⑵ django python上传文件有中文名称报错

1) 看错误堆栈,是不是编码问题
2) 把处理的地方用try except包围起来,尝试转换为可以正常使用的编码方式。

比如gbk和utf-8转换什么的做一下就没问题了。

⑶ django怎么上传文件到数据库

这个做法,是从新建数据库开始的,对于新建数据库 DJANGO会自己在 表名前加一个前缀,所以跟你自己建立的表是不一样的。不信看下数据库中的表。
至于怎么用现有数据库表,可以自己查下,DJANGO连接现有表的操作步骤,

⑷ django 上传文件问题

这个问题不是文件上传的问题,是很简单的文件编码。


这个在python里有些费解。经常出错。你要明白,django缺省使用unicode。如果你使用str类型。它会自动给你转换。这是python自动转换。不过在windows下,缺省它用GBK, 有时候会出错。


你这个环境正好是windows。 英文进行encode('utf-8')没有问题。


我建议你在文件前面加上一个coding:utf-8


然后将这句改成

assert(type(file_name)==unicode)
fpath=u'D:/texthub/texthub/site_media/upload/'+file_name.encode('gb18030')


你自己试验一下。

⑸ django文件上传的时候怎么能加一个上传进度的显示

首先需要一个表单来让用户选择要上传的文件。

1 <form id="form_upload" action="/upload" method="POST">
2 <input type="file" name="picture" id="picture" />
3 <input type="hidden" id="X-Progress-ID" name="X-Progress-ID" value=""/>
4 <input type="hidden" id="id" name="id" value=""/>
5 <input id="form_submit_button" class="tp-button" type="submit" value="Submit" />
6 </form>
这里增加了两个隐藏的输入框,第一个是 ‘X-Progress-ID’,代表上传 ID,这样我们才能够在服务器端支持并发的上传请求。稍后我们会看到,服务器是如何处理这个值的。

然后还有一个隐藏输入框 ‘id’,在我们的例子里代表菜品的编号。

我们将使用 Ajax 来发送 POST 请求,这样表单便可以很好地集成在现代的网络界面中,同时包含一个进度条。我们打算使用 jQuery Form plugin 来实现这一点。

函数 ajaxSubmit() 将会帮我们搞定一切。

为上传 ID 生成一个随机字串,并用它设置输入框的值。
需要指定一个用于上传请求的 URL 和两个回调函数:一个在请求前调用,另一个在请求完成后调用。

1 $('#X-Progress-ID').val('random string');
2 var options = {
3 dataType: 'xml',
4 url: '/upload?X-Progress-ID='+$('#X-Progress-ID').val(),
5 beforeSubmit: showRequest,
6 success: showResponse
7 }
8 $('#form_upload').ajaxSubmit(options);
showRequest 回调函数只需要像下面这么简单就行了:

1 function showRequest(formData, jqForm, options) {
2 // do something with formData
3 return True;
4 }
在 showResponse 函数中,我们需要处理响应,并对它进行操作。在我的例子里,我处理了服务器返回的带有状态值的 xml。

1 function showResponse(response) {
2 // do something with response
3 }
用户按下提交的时候,我们希望显示一个进度条,因此可以使用下面的 JS 代码,向表单添加进度条。progressBar() 方法是 jQuery progress bar plugin 的一部分。

1 $('#form_upload').find('#form_submit_input').append('<span id="uploadprogressbar"></span<');
2 $('#form_upload').find('#uploadprogressbar').progressBar();
现在我们需要添加一个每隔几秒运行一次的函数,来从服务器获取上传进度,并相应地更新进度条。

为此,我们使用 setInterval() 向服务器发出一个 GET 请求,获取 JSON 格式的进度值。我们向服务器传送上传 ID。当返回 null 值的时候,就可以知道上传已经结束。

01 function startProgressBarUpdate(upload_id) {
02 $("#uploadprogressbar").fadeIn();
03 if(g_progress_intv != 0)
04 clearInterval(g_progress_intv);
05 g_progress_intv = setInterval(function() {
06 $.getJSON("/get_upload_progress?X-Progress-ID="
07 + upload_id, function(data) {
08 if (data == null) {
09 $("#uploadprogressbar").progressBar(100);
10 clearInterval(g_progress_intv);
11 g_progress_intv = 0;
12 return;
13 }
14 var percentage = Math.floor(100 * parseInt(data.uploaded) / parseInt(data.length));
15 $("#uploadprogressbar").progressBar(percentage);
16 });

⑹ 如何使用django restfulframework 实现文件上传

给你一个我的代码:

首先需要用下面的装饰器把POST数据的解析器改为MultiPartParser,其中picture的file字段是个FieField或者它的子类。

@api_view(['POST'])
@parser_classes((MultiPartParser,))
defupload_picture(request):
if"file"inrequest.FILES:
f=request.FILES["file"]
picture=Picture()
picture.file=f
picture.save()
returnResponse(data={"id":picture.id})

⑺ Django上传文件 前端页面form标签里action属性怎么设置

  1. action就写url啊,跟视图没直接关系,你要指定某个视图的话,可以用{% url %}标签;不过常见的做法action就是空,也就是当前视图,在视图里通过判断method是GET还是POST进行处理

  2. 没深究过,就是解决跨站访问啥的问题

⑻ 请教朋友们,django用filefield上传作品.txt文件报错UnicodeEncodeError

有的,要设置字符编码

⑼ django如何强制覆盖上传文件名字

数据库查询文件存放模型, 文件名查询获得

⑽ django post的文件上传使用read为什么是乱码

改下编码
def get_content(request):
content=request.POST["content"].encode('gb2312')
return HttpResponse(content)

热点内容
天籁速派哪个配置好 发布:2024-09-29 06:21:15 浏览:110
高计算型云服务器的应用场景 发布:2024-09-29 06:21:14 浏览:306
Linux在嵌入式开发 发布:2024-09-29 05:36:06 浏览:609
mysql创建表的sql语句 发布:2024-09-29 04:24:46 浏览:329
protues用什么编译器 发布:2024-09-29 04:04:12 浏览:422
bab编程 发布:2024-09-29 03:48:58 浏览:935
魔兽世界服务器新是什么意思 发布:2024-09-29 03:43:48 浏览:392
吉利博越自动挡哪个配置最好 发布:2024-09-29 03:43:26 浏览:762
服务器出现故障码怎么解决 发布:2024-09-29 03:40:50 浏览:183
公费访问学者 发布:2024-09-29 03:33:12 浏览:311