django ImageField,FileField,上傳檔案,命名問題
django 的models.ImageFiled,FileField有屬性upload_to,該屬性是指定將檔案上傳到伺服器的位置,及儲存在哪個資料夾下,你可以很方便甚至很少的程式碼就可以實現檔案上傳操作了。但是預設的儲存的檔名是沒有改變的,也就是說所儲存的檔名就是你上傳時檔案的本地名,當伺服器資料夾下有相同的檔名時,系統會自動新增下劃線來改變檔名,以保證檔案能順利上傳到伺服器上。當是這樣的檔名十分不美觀,而且很多時候我們喜歡自己定義檔名,甚至動態控制檔案儲存的位置。這樣看上去可能就不那麼容易了。其他django其他的功能也為我們想好了這一點,並且很容易就可以實現你想要的操作。
1. upload_to指定的是檔案儲存的目錄,你可以指定upload_to="/upload/%Y%m",這段的意思是根據當前的年月作為目錄名,將檔案儲存到該資料夾下面,例如,現在是2009年2月,那麼檔案就會儲存在/upload/200902/目錄下面。目錄可以根據日期來改變了,當然如果我不想用日期呢,而且檔名我如何自定義呢?下面看第二點
其中有from django.core.files.storage import default_storage
我們檢視django的原檔案django.core.files.storage
下面定義了Storage和FileSystemStorage,其中FileSystemStorage繼承之Storage,檔案最後有兩句
與前面from django.core.files.storage
default_storage是我們在settings.py中定義的,也許你在自己專案下面settings.py檔案裡面沒有看到這個屬性,但是我們知道專案下面的settings.py都是繼承之global_settings.py的,再次檢視django原檔案,在django/conf可以看到該檔案,開啟按 Ctrl + F查詢DEFAULT_FILE_STORAGE 就可以看到DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage',也就是預設的Storage了,找到這個我們就找到檔案徹底解決的辦法了,寫一個自己的Storage,來處理自己需要的操作。
因為Storage是基類,而且是“虛類”,我們可以繼承FileSystemStorage,因為該類已經幫我們做好了大部分事情。下面是個簡單的例子---實現上面所說的自定義檔名:
OK!其他操作也就是重寫相應的方法來滿足你的需要嘍。
看來,在遇到問題的時候還是要多看看文件,然後看看原程式,看他們是如何實現的,說不定就會有意想不到的想法和發現。
相關推薦
django ImageField,FileField,上傳檔案,命名問題
django 的models.ImageFiled,FileField有屬性upload_to,該屬性是指定將檔案上傳到伺服器的位置,及儲存在哪個資料夾下,你可以很方便甚至很少的程式碼就可以實現檔案上傳操作了。但是預設的儲存的檔名是沒有改變的,也就是說所儲存的檔名就是你上傳時
springMVC上傳檔案,MultipartHttpServletRequest、MultipartFile進行檔案上傳
這裡使用apache的開源jar包完成上傳功能,使用jar包分別是:common-fileupload.jar和common-io.jar 先編寫上傳檔案幫助類,如果需要區分檔案型別,可以將檔案字尾擷取進行判斷; springmvc-mvc.xml配置,這裡主要配置spri
Django 使用ajax上傳檔案
Django 使用ajax上傳檔案 JSON json指的是JavaScript物件表示法(JavaScript Object Notaion) json是輕量級的文字資料交換格式 json獨立於語言 json具有自我描述性,更易理解 JSON 使用 JavaScript 語法來描述資料物件,但是
使用base64上傳檔案,後臺轉為MultipartFile
通常情況下,上傳檔案時,使用的都是file型別。我們再java後臺應用只需要使用MultipartFile接收就可以了。有的時候,或許我們也會遇到使用base64進行檔案上傳。今天,我們一起學習下後臺 應該如何處理這樣的情況。 由於MultipartFile的實現類都不太適用於base64的上傳
spring Boot 上傳檔案,10天后,不能上傳的bug
起因 公司研發人員 部署服務在阿里雲 ecs 伺服器; 上傳檔案過1周左右檔案自動丟失; 排查思路: (1).查詢tomcat 啟動日誌出現如下資訊:
spring mvc --上傳檔案,檔案和其他資料一起提交
jsp: var formdata = new FormData(); formdata.append('file', $('#file')[0].files[0]); //上傳檔案 formdata.append('id', $('#id').val(
github二次上傳檔案,分支檔案上傳,刪除資料夾
看了太多GitHub入門教程,終於搞通了,樂在分享。 部分參考:第一個GitHub專案https://blog.csdn.net/wangyan_z/article/details/79148059 git上傳本地分支到github專案分支 https://blog.csdn.
ajax 上傳檔案,post上傳檔案,ajax 提交 JSON 格式的資料
ajax簡介 前後臺做資料互動 前後端做資料互動的方式(三種): (1)瀏覽器視窗輸入地址(get的方式)(2)form表單提交資料(3)ajax提交資料 特點 特點: (1)非同步 非同步與同步的區別:同步是請求發過去,要等著迴應;非同步不
如何使用objective c上傳檔案,用flask接收檔案
flask是python中類似於php的伺服器元件。 ios提供了NSMutableArray和 dataTaskWithRequest用來使用http上傳資料。但是flask只支援基於表單格式的資料。 表單格式是在原始http資料上,提供了額為的資訊。如果直接使用ios的api把資料傳送給
初識flask,上傳檔案,uwsgi部署
安裝: pip install flask web開發: app.py from flask import Flask,request,make_response from flask import jsonify app = Flask(__name__) UPLOAD_FOL
Java檔案上傳:Restful介面接收上傳檔案,快取在本地
介面程式碼 import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.Requ
前端上傳檔案,二進位制流存入資料庫
html: <input type="file" name="files" id="btnfile"/> JS: $('input[type=file]').on("change", function () { var files = this.files[0]; var FileName =
python傳送post請求上傳檔案,無法解析上傳的檔案
前言 近日,在做介面測試時遇到一個奇葩的問題。 使用post請求直接通過介面上傳檔案,無法識別檔案。 遇到的問題 以下是抓包得到的資訊: 以上請求是通過Postman直接傳送請求的。 在這裡可以看到訊息頭裡包含:Access-Token和Content-Type 因此在在使用python直接
MVC Api微信小程式wx.uploadFile上傳檔案,前後端程式碼例項
// 小程式端js Page({ /** * 頁面的初始資料 */ data: { userHeaderImage: "../../../images/1.jpg" }
winform上傳檔案,利用http,form-data格式上傳
/// <summary> /// 上傳檔案 /// </summary> /// <param name="url">服務地址</param> /// <param name="filePath">檔案路徑</param> public
Android WebView嵌入H5之file頭像上傳檔案,適配所有版本
最近公司需要開發新的專案,為了節省時間成本,要求整體嵌入H5介面。對,沒看錯是整體嵌入,心中一萬隻草泥馬奔騰,沒辦法大佬就是大佬,還是的照做。 今天來說說h5上傳頭像的問題吧。網上有很多的解決方案,開始我覺得好像很簡單,都有成功案例,等把程式碼copy下來,發現並不能執
Python Flask,上傳檔案,request.files
demo.py(上傳檔案): # coding:utf-8 from flask import Flask, request # 匯入request物件 app = Flask(__name__) @app.route("/upload", methods=["PO
HTML5 jQuery+FormData 非同步上傳檔案,帶進度條
利用jQuery和html5的FormData非同步上傳檔案的好處是: 實現很簡單很方便地支援進度條很方便地進行擴充套件和美化 先看看效果圖: 圖片上傳後的結果: 實現步驟如下: 第二步:上傳頁面的html程式碼: [html] view plain
上傳檔案,解壓zip
前臺使用layui官方上傳檔案例子: <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title&
servlet 上傳檔案,下載檔案響應頭部設定
使用apache的開源jar編寫 編寫檔案上傳幫助類 /** * 檔案上傳幫助類 * * @author ajie * */ public class FileUploadUtil { /** * 建立資料夾