簡體   English   中英

Django 中的圖像上傳和操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM