【问题标题】:Django, uploading file: [Errno 13] Permission denied: '/media/name.txt'Django,上传文件:[Errno 13] 权限被拒绝:'/media/name.txt'
【发布时间】:2011-10-18 17:41:12
【问题描述】:

我正在按照这个 django 文档创建一个 django 上传文件模块:UploadFiles

执行时的包

 destination = open('/media/name.txt','wb+')

它会抛出这个错误

[Errno 13] 权限被拒绝:'/media/name.txt'

但我的设置是:

  1. 一个名为“media”的媒体文件夹,位于 django 项目的根目录中
  2. 这个文件夹'media'有777作为权限(通过ls -l检查),它的所有者是相同的执行django应用程序(通过lsof -i检查)
  3. 项目的settings-py有'/home/pippo/...PROJECT_FOLDER/media'作为MEDIA_ROOT和'http://127.0.0.1:8000/media/'作为MEDIA_URL

由于这些设置,抛出这个错误似乎很奇怪。

一些帮助?

【问题讨论】:

    标签: django exception file-upload permissions


    【解决方案1】:

    您必须以 root 用户或任何其他用户的所有权创建文件夹。否则你不会得到这个错误。检查每个文件夹,如果您发现 root 为所有者,则执行“sudo chown -R theusername:theusername /folder/folder

    【讨论】:

      【解决方案2】:

      您说 media 位于 django 项目的根目录,但似乎 django 正在尝试在文件系统的根目录打开文件夹 media。试试

      open('media/name.txt','wb+')
      

      open('/home/pippo/...PROJECT_FOLDER/media/name.txt,'wb+')
      

      (将 ... 替换为适当的中间目录。)

      【讨论】:

      • 或者你可以做类似open(settings.MEDIA_ROOT + 'name.txt', 'wb+')
      • open('media/name.txt','wb+') 抛出[Errno 2] No such file or directory: 'media/name.txt' Isolved with open(settings.MEDIA_ROOT + 'name.txt', 'wb+')
      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多