当前位置: 首页 > 网络应用技术

如何在Django中上传文件(Django上传下载文件)

时间:2023-03-06 21:27:32 网络应用技术

  简介:本文的首席执行官注释将介绍有关Django如何上传文件的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  给您一个代码:

  首先,您需要使用以下装饰器将Post Data的解析器更改为MultipartParser。其中,Piction的文件字段是fiefield或其子类。

  @api_view(['post'])

  @parser_classes(((倍部分,)))

  def upload_picture(请求):

  如果在request.files中“文件”:

  f = request.files [“文件”]

  图片=图片()

  picture.file = f

  picture.save()

  返回响应(data = {“ id”:picture.id})

  worlds = requests.post(path,data = {'document_name':document_path,'file':base64.b64encode(file.read())})此方法实际上是将base64的文件信息和文件发送到服务器。侧面,有以下方法沉积在服务器中

  如何将文件存储在当地

  这个问题不是文件上传的问题,而是一个非常简单的文件代码。

  这在python中很困惑。法定错误。您必须了解django默认为unicode。如果您使用str类型。它将自动转换您。这是python的自动转换。GBK,有时会出错。

  您的环境正是Windows。英语('utf-8')英语没有问题。

  我建议您在文件前面添加一个编码:UTF-8

  然后将此句子更改为

  断言(type(file_name)== unicode)

  fpath = u'd:/ texthub/texthub/site_media/upload/'+file_name.encode('gb18030')

  自己尝试。

  使用WebClient代替FTP

  首先,让我们定义一个class uploadfile。此类是文件上传类。编码显示如下:

  public void uploadfile(字符串fileNamepath,string uristring,bool isautorEname)

  {{{

  int indexof = 0;

  if(filenamepath.contains(@“”))

  {{{

  indexof = filenamepath.lastindexof(@“”);

  }

  否则(filenamepath.contains(“/”))

  {{{

  indexof = filenamepath.lastindexof(“/”);

  }

  字符串fileName = filenamepath.substring(indexof + 1);

  字符串newFileName = filename;

  如果(ISAUTORENAME)

  {{{

  newfileName = dates.now.tostring(“ yymmddhhmms”) + dateTime.now.millisecond.tostring() + filepath.substring(filenamepath.lastIndexexof(lastIndexexof(“。”);

  }

  字符串filenameext = filename.substring(filename.lastindexof(“。”) + 1);

  if(uristring.endswith(“/”)== false)uristring = uristring +“/”;

  uristring = uristring + newfileName;

  ///创建一个webclient示例

  webclient mywebclient = new webclient();

  mywebclient.credentials = recredentialCache.defaultCredentials;

  //要上传的文件

  FILESTREAM FS = NEW FILESTREAM(FILENAME PATH,FIFEMODE.OPEN,FIELEACCESS.READ);

  // FILESTREAM FS = OPENFILE();

  binarleReader r = new binaryReader(fs);

  byte [] postArray = r.readBytes((int)fs.length);

  流poststream = mywebclient.openwrite(uristring,“ put”);

  尝试

  {{{

  //使用uploadfile方法使用以下格式

  //mywebclient.uploadfile(uristring,“ put”,filenamepath);

  if(poststream.canwrite)

  {{{

  poststream.write(postArray,0,postarray.length);

  poststream.close();

  fs.dispose();

  }

  别的

  {{{

  poststream.close();

  fs.dispose();

  }

  }

  捕获(异常ERR)

  {{{

  poststream.close();

  fs.dispose();

  投掷错误;

  }

  最后

  {{{

  poststream.close();

  fs.dispose();

  }

  }

  好吧,在定义此类课程之后,这取决于我们如何称呼它。在这里我举例说明:

  单击按钮事件:

  私有void Center_Click(对象发送者,EventArgs e)

  {{{

  //上传文件

  //获取文件名,文件扩展名,服务器路径

  字符串filepath = filename.text;//您需要上传的文件,您可以在这里使用OpenFileDialog获取文件

  String Server = @“”“”;//上传路径

  //创建一个webclient示例

  webclient mywebclient = new webclient();

  尝试

  {{{

  //使用uploadfile方法上传

  uploadfile(filepath,server,true);

  MessageBox.Show(“成功上传”,“系统提示”,MessageBoxButtons.ok,MessageBoxicon.Information);

  }

  捕获(异常EX)

  {{{

  MessageBox.Show(ex.message);

  返回;

  }

  }

  自动化接口时,有时会遇到图片上传的接口。目前,内容类型不是应用程序/JSON。

  这是DRF编写图片上传界面和测试。

  1.写图片上传界面

  首先创建一个文件夹我们要存储文件,并在settings.py中配置路径:

  在项目的urls.py中配置媒体路线:

  在应用程序的models.py中创建模型:

  并在serializer.py中创建序列化:

  写视图。

  urls.py配置路由到应用程序:

  最后,让我们测试:

  结论:以上是首席CTO的全部内容,请注意Django如何为每个人上传文件。感谢您阅读本网站的内容。我希望这对您有帮助。有关django如何在此站点上添加文件的更多信息。