导读:本篇文章首席CTO笔记来给大家介绍有关django如何上传文件的相关内容,希望对大家有所帮助,一起来看看吧。
如何使用django restfulframework 实现文件上传
给你一个我的代码:
首先需要用下面的装饰器把POST数据的解析器改为MultiPartParser,其中picture的file字段是个FieField或者它的子类。
@api_view(['POST'])
@parser_classes((MultiPartParser,))
def upload_picture(request):
if "file" in request.FILES:
f = request.FILES["file"]
picture = Picture()
picture.file = f
picture.save()
return Response(data={"id":picture.id})
django实现文件上传到服务器
response = requests.post(PATH, data={'document_name': document_path, 'file': base64.b64encode(file.read())}) 这个方法其实就是将文件信息和转成base64的文件发到服务器那边,那边就是以下的方法存入服务器
文件存入本地的方法
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上传文件到远程服务器,怎么整
使用的是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");
try
{
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
postStream.Close();
fs.Dispose();
}
else
{
postStream.Close();
fs.Dispose();
}
}
catch (Exception err)
{
postStream.Close();
fs.Dispose();
throw err;
}
finally
{
postStream.Close();
fs.Dispose();
}
}
好了,定义好这个类之后就看我们怎么调用它了。在这里我给出一个例子:
单击某个按钮事件:
private void center_Click(object sender, EventArgs e)
{
//上传文件
//得到文件名,文件扩展名,服务器路径
string filePath = filename.Text; //需要上传的文件,在这里可以根据需要采用OpenFileDialog来获取文件
string server = @"”; //上传路径
//创建webclient实例
WebClient myWebClient = new WebClient();
try
{
//使用Uploadfile方法上传
UpLoadFile(filePath, server, true);
MessageBox.Show("上传成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
Django REST framework编写图片上传接口并测试
在做接口自动化时,有时会遇到图片上传的接口,这时Content-Type就不是application/json。
这里使用DRF编写一个图片上传接口,并测试。
一、编写图片上传接口
首先创建一个我们希望用来存放文件的文件夹,并且在settings.py中配置路径:
在项目的urls.py中配置media的路由:
在应用的models.py中创建模型:
并且在serializers.py中创建序列化:
编写视图views.py:
给应用的urls.py配置路由:
最后我们测试一下:
结语:以上就是首席CTO笔记为大家整理的关于django如何上传文件的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何上传文件的相关内容别忘了在本站进行查找喔。