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

Django上传视频如何获得(2023年最新分享)

时间:2023-03-05 21:42:18 网络应用技术

  简介:今天,首席CTO Note将与您分享如何获取视频上传视频。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  在Django中,您通常需要配置图片,视频和其他格式文件。在配置过程中,它更为复杂。这是一个记录:

  将以下目录添加到文件末尾以存储上传的文件

  在模型中,图像字段是%y代表年份的年份,%m表示一个月。上传文件时,表示将上传到图像目录和当前限制目录的文件夹。

  image = models.imagefield(upload_to =“ image/%y/%m”,空白= true)

  其中,SRC中的{{Media_url}}将在模板中渲染,以用作 /媒体 /

  如果要在模板中使用{{Media_url}},请在“ template”的“ context_processis”选项中添加django.template.contexors.media。

  通过上述步骤,结果基本上可以正常呈现在前端,但是您需要在图片中添加一个URL才能正常显示。

  第一个行为介绍了静态文件的服务器,第二个行为是在配置文件中的介质_root中介绍的

  加入URL:

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

  2添加到gasemblyInfo.cs

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

  如何将文件存储在当地

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

  返回;

  }

  }

  首先,需要表格才能让用户选择要上传的文件。

  1 form ID =“ form_upload” action =“/upload” method =“ post”

  2输入类型=“ file” name =“图片” id =“图片” / /

  3输入类型=“隐藏”

  4输入类型=“隐藏” id =“ id” name =“ id” value =“”/

  5输入ID =“ form_submit_button” class =“ tp-button” type =“ submit” value =“ submit” / / in

  6 /表格

  这里添加了两个隐藏的输入框,第一个是“ x-progress-id”,该框表示上传ID,以便我们可以在服务器上上传并发上传请求。我们将看到服务器如何处理此值。

  然后是一个隐藏的输入框“ ID”,代表我们示例中的菜肴数。

  我们将使用Ajax发送发布请求,以便表单可以很好地集成到现代网络接口中,同时它包含了一个进度条。我们打算使用jQuery表单插件来实现这一目标。

  函数ajaxsubmit()将帮助我们获得所有内容。

  要生成一个随机字符串来上传ID,并使用它设置输入框的值。

  您需要为上传请求指定一个URL和两个回调函数:一个在请求之前呼叫,然后在请求完成后调用另一个呼叫。

  1 $('#x-progress-id')。val('Random String');

  2个var选项= {

  3数据类型:'xml',,

  4 URL:'/上传?x-progress-id ='+$('#x-progress-id')。val(),

  5 Beforesubmit:ShowRequest,

  6成功:ShowResponse

  7}

  8 $('#form_upload')。AjaxSubmit(options);

  ShowRequest回调函数只需要与以下内容一样简单:

  1函数showrequest(formdata,jqform,options){{{

  2 //用formdata做某事

  3返回true;

  4}

  在ShowResponse函数中,我们需要处理响应并操作它。在我的示例中,我处理服务器返回的状态值的状态值。

  1个函数showresponse(响应){

  2 //做出回应

  3}

  当用户按提交内容时,我们要显示一个进度条,因此您可以使用以下JS代码将Progress Bar添加到Form.Progressbar()方法是JQuery Progress Bar插件的一部分。

  1 $('#form_upload')。查找('#form_submit_input')。

  2 $('#form_upload')。查找('#uploadprogressbar')。进度条 ();

  现在,我们需要添加一个函数以每隔几秒钟运行一次,以从服务器上传进度并相应地更新进度栏。

  为此,我们使用setInterval()将get请求发送到服务器以获取JSON格式的进度值。我们将ID传递给服务器。当您返回null值时,您可以知道上传已经结束。

  01函数startprogressbarupdate(upload_id){

  02 $(“ #uploadprogressbar”)。淡入 ();

  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”)。进度栏(100);

  10 ClearInterval(g_progress_intv);

  11 g_progress_intv = 0;

  12返回;

  13}

  14 var百分比= math.floor(100 * parseint(data.uploaded) / parseint(data.length));

  15 $(“ #uploadprogressbar”)。进度栏(百分比);

  16});

  如果它是一个简短的视频并上传了由Django限制的文件,则可以以相同的方式上传。如果上传的视频容量大于Django中的限制,则可以考虑使用文件流下载。

  结论:以上是首席执行官指出的Django上传视频的所有内容。我希望这对每个人都会有所帮助。如果您仍然想进一步了解这一点,请记住收集并关注此网站。