我有一個使用 django 框架在 python 中開發的應用程式的問題,它使用 FPDF 庫匯出一個檔案,然后應用程式使用該檔案將其附加到自動電子郵件。
當此應用程式匯出 PDF 并將其保存到media目錄時,該檔案不會從其父目錄繼承權限,并且只有讀/寫權限,這不允許 Django 找到該檔案,因此可以將其附加到郵件中.
我在網上搜索,發現有同樣問題的人,建議他們使用ACL配置來管理默認權限,我用不同的方法嘗試了很多次,但沒有奏效。我不知道我做錯了什么(我一直有同樣的錯誤)。在進行 ACL 配置之后,檔案繼續以相同的權限匯出,并且在應用命令時chmod 777 -R *這些檔案并沒有更改它們的權限,我必須禁用 ACL 配置以允許我應用該命令。
這是出現的錯誤:
Internal Server Error: /treasury/sendMailsSupplierView/SBOJOZF
Traceback (most recent call last):
File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/johannasenvironment/JohannasEnviroment/treasuryEmails/views.py", line 33, in sendMailsSupplierView
sendEmailSupplier('[email protected]', report) #sendEmailSupplier(emailSupplier, report)
File "/var/www/johannasenvironment/JohannasEnviroment/treasuryEmails/mails/mailsFunctions.py", line 50, in sendEmailSupplier
email_traslado.attach_file(report)
File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/mail/message.py", line 330, in attach_file
with path.open('rb') as file:
File "/usr/lib/python3.6/pathlib.py", line 1183, in open
opener=self._opener)
File "/usr/lib/python3.6/pathlib.py", line 1037, in _opener
return self._accessor.open(self, flags, mode)
File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped
return strfunc(str(pathobj), *args)
FileNotFoundError: [Errno 2] No such file or directory: 'media/PaySuppiler--27022022142925.pdf'
這是最新的未應用檔案的樣子sudo chmod 777 *:
administrador@WEB-APPLICATION:/var/www/johannasenvironment/JohannasEnviroment/media$ ls -l
total 396
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:17 PaySuppiler--27022022141734.pdf
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:28 PaySuppiler--27022022142833.pdf
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:29 PaySuppiler--27022022142925.pdf
administrador@WEB-APPLICATION:/var/www/johannasenvironment/JohannasEnviroment/media$
這些是media目錄的權限:
drwxrwxrwx 2 administrador administrador 16384 feb 27 09:29 media
uj5u.com熱心網友回復:
您能否檢查正在訪問的路徑是否正確。根據媒體檔案夾中檔案的權限,每個用戶都具有讀取權限,并且您正在嘗試讀取檔案(以二進制形式)。
這個錯誤(FileNotFoundError: [Errno 2] No such file or directory: 'media/PaySuppiler--27022022142925.pdf')表明路徑不正確。嘗試使用基于檔案的相對路徑,例如 os.path.join(os.path.realpath( file ), "../media/PaySuppler--27022022142925.pdf")
為什么我會收到 FileNotFoundError?
uj5u.com熱心網友回復:
可能嘗試以root身份執行命令?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434789.html
標籤:Python django linux pdf pyfpdf
