首页>>后端>>Python->django上传视频怎么弄(2023年最新分享)

django上传视频怎么弄(2023年最新分享)

时间:2023-12-20 本站 点击:0

导读:今天首席CTO笔记来给各位分享关于django上传视频怎么弄的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django媒体文件URL的配置

在Django中经常需要配置图片、视频等表态文件,在配置时较为复杂,这里纪录一下:

在文件尾部加入以下目录,用于存放上传的文件

在models中写上image字段其中 %Y 代表年, %m 代表月, blank=True 代表可以为空。当上传文件时,代表上传到image目录下,以当前年月子目录的文件夹中。

image = models.ImageField(upload_to="image/%Y/%m", blank=True)

其中src中的{{ MEDIA_URL }}会在模板中渲染为第一步中的 /media/

如果您想在模板中使用{{MEDIA_URL}},请在“模板”的“context_processors”选项中添加 django.template.context_processors.media 。

通过以上步骤,基本上可以在前端正常渲染出结果了,但还需要给图片添加一个URL以正常显示。

第一行为引入静态文件的serve,第二行为导入工程配置文件中的 MEDIA_ROOT

在url中加入:

Django-jQuery-File-Upload怎么才能上传大型文件

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

2在AssemblyInfo.cs中添加

django实现文件上传到服务器

response = requests.post(PATH, data={'document_name': document_path, 'file': base64.b64encode(file.read())}) 这个方法其实就是将文件信息和转成base64的文件发到服务器那边,那边就是以下的方法存入服务器

文件存入本地的方法

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文件上传的时候怎么能加一个上传进度的显示

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

1form 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');

2var 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 回调函数只需要像下面这么简单就行了:

1function showRequest(formData, jqForm, options) {

2 // do something with formData

3 return True;

4}

在 showResponse 函数中,我们需要处理响应,并对它进行操作。在我的例子里,我处理了服务器返回的带有状态值的 xml。

1function 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 值的时候,就可以知道上传已经结束。

01function 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 });

python+django上传图片和视频方法一样吗

如果是短视频,不超过django中限制的文件上传字节,那么就可以一样上传,如果上传的视频容量大于django中的限制,可以考虑使用文件流式传输下载。

结语:以上就是首席CTO笔记为大家介绍的关于django上传视频怎么弄的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/45962.html