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

Django如何实现上传大文件(2023年的最新答案)

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

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

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

  如何将文件存储在当地

  当它小于25m时,它将被放置在对象(内存)对象中。

  当它超过250万时,将其放置在临时fileuploadfile(磁盘文件)中

  而且,当芹菜做腌制_dumpp时,您将转到文件对象的编码。

  该编码当前发现只能有inmemoryfileuploadfile对象

  因此,我们只能在inmemoryfileuploadfile中传递所有上传的文件,我们可以通过clery

  您可以在设置中设置

  让我们修改策略以在50m之内的所有文件都存在于Inmemoryfileuploadfile中

  此设置谨慎使用以防止内存溢出!

  1设置文件的属性:生成操作 - 嵌入式资源

  2添加到gasemblyInfo.cs

  给您一个代码:

  首先,您需要使用以下装饰器将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})

  使用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”);

  结论:以上是CTO首席执行官如何向所有人介绍Django的全部内容。我希望这对每个人都会有所帮助。如果您想了解更多有关此信息的信息,请记住收集并关注此网站。