[英]Django upload image - From a form to Rackspace/S3 with no manipulation
[英]Image upload and Manipulation in Django
我正在嘗試上傳圖像,然后創建它的縮略圖,然后將兩者都存儲在 S3 中。 文件上傳后,我首先將其上傳到 S3,然后嘗試創建縮略圖,但它不起作用,因為 PIL 無法識別圖像。 其次,如果我先創建縮略圖而不是上傳原始圖像,我會得到 EOF。
我認為 Django 只允許一次上傳文件只使用一次....請告訴我這樣做的方法....提前致謝
嗯,你的問題需要更具體,但我們正在做同樣的事情,工作流程如下:
1)您從 request.FILES 獲取文件上傳的文件句柄並將其存儲在本地文件系統的某個位置,因此您不會在流上工作 - 我猜這就是導致您出現問題的原因
2)您使用 PIL(或者更好的是 Pillow)來操作 FS 上的圖像,進行調整大小、縮略圖等操作。
3) 您使用 Boto (http://boto.cloudhackers.com/en/latest/) 上傳到 S3,因為 Boto 將 AWS 的處理從您手中奪走了。
它非常簡單並且運行良好
您的 PIL 安裝在編譯時是否找到了正確的庫。 您可以嘗試卸載它並使用 pip 重新安裝它。
查看編譯輸出的末尾,有一個部分詳細說明了哪些庫可用。
我花了很長時間試圖找出為什么它沒有發現我的 jpeg、png/zip 庫,然后才意識到它在錯誤的位置。
在 Debian 中,我需要下載 PIL/Pillow 源代碼並添加:
_add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
到 settings.py 文件的“標准位置”部分 - 這是我的 libjpeg.so 安裝到的目錄
然后我需要運行
python setup.py install
並檢查輸出以確保它找到了正確的庫
希望這可以幫助
我終於弄明白了。 問題是它是一個存儲上傳文件的流,所以每次我讀取文件時它都會到達 EOF。
唯一和最好的出路是在我們每次讀取文件時都查找(0)。
在 django 中使用其他文件時也需要這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.