當前位置:首頁 » 文件管理 » django上傳文件

django上傳文件

發布時間: 2022-01-12 00:16:49

⑴ 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");

⑵ django python上傳文件有中文名稱報錯

1) 看錯誤堆棧,是不是編碼問題
2) 把處理的地方用try except包圍起來,嘗試轉換為可以正常使用的編碼方式。

比如gbk和utf-8轉換什麼的做一下就沒問題了。

⑶ django怎麼上傳文件到資料庫

這個做法,是從新建資料庫開始的,對於新建資料庫 DJANGO會自己在 表名前加一個前綴,所以跟你自己建立的表是不一樣的。不信看下資料庫中的表。
至於怎麼用現有資料庫表,可以自己查下,DJANGO連接現有表的操作步驟,

⑷ 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文件上傳的時候怎麼能加一個上傳進度的顯示

首先需要一個表單來讓用戶選擇要上傳的文件。

1 <form 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');
2 var 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 回調函數只需要像下面這么簡單就行了:

1 function showRequest(formData, jqForm, options) {
2 // do something with formData
3 return True;
4 }
在 showResponse 函數中,我們需要處理響應,並對它進行操作。在我的例子里,我處理了伺服器返回的帶有狀態值的 xml。

1 function 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 值的時候,就可以知道上傳已經結束。

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

⑹ 如何使用django restfulframework 實現文件上傳

給你一個我的代碼:

首先需要用下面的裝飾器把POST數據的解析器改為MultiPartParser,其中picture的file欄位是個FieField或者它的子類。

@api_view(['POST'])
@parser_classes((MultiPartParser,))
defupload_picture(request):
if"file"inrequest.FILES:
f=request.FILES["file"]
picture=Picture()
picture.file=f
picture.save()
returnResponse(data={"id":picture.id})

⑺ Django上傳文件 前端頁面form標簽里action屬性怎麼設置

  1. action就寫url啊,跟視圖沒直接關系,你要指定某個視圖的話,可以用{% url %}標簽;不過常見的做法action就是空,也就是當前視圖,在視圖里通過判斷method是GET還是POST進行處理

  2. 沒深究過,就是解決跨站訪問啥的問題

⑻ 請教朋友們,django用filefield上傳作品.txt文件報錯UnicodeEncodeError

有的,要設置字元編碼

⑼ django如何強制覆蓋上傳文件名字

資料庫查詢文件存放模型, 文件名查詢獲得

⑽ django post的文件上傳使用read為什麼是亂碼

改下編碼
def get_content(request):
content=request.POST["content"].encode('gb2312')
return HttpResponse(content)

熱點內容
數碼管動態顯示程序c語言 發布:2024-09-29 07:34:57 瀏覽:900
蘋果搬家到安卓怎麼辦 發布:2024-09-29 07:13:46 瀏覽:355
編程貓登錄平台 發布:2024-09-29 07:03:27 瀏覽:312
xp無線密碼怎麼看 發布:2024-09-29 06:48:23 瀏覽:203
命理與資料庫 發布:2024-09-29 06:39:19 瀏覽:450
華為電腦本機網站配置怎麼打開 發布:2024-09-29 06:26:11 瀏覽:518
android屏幕截圖源碼 發布:2024-09-29 06:22:06 瀏覽:542
天籟速派哪個配置好 發布:2024-09-29 06:21:15 瀏覽:112
高計算型雲伺服器的應用場景 發布:2024-09-29 06:21:14 瀏覽:307
Linux在嵌入式開發 發布:2024-09-29 05:36:06 瀏覽:612