在Django中上传和保存图像的问题

时间:2010-07-09 08:39:10

标签: django django-views

尝试在Django中上传图像时出现

(13,'Permission denied')错误 我检查了保存图像的目录的访问权限 drwxr-xr-x 2 hsrd hsrd 4096 2010-03-19 15:49媒体

请为此建议解决方案。

if request.method == 'POST':
    if 'file' in request.FILES:
            file = request.FILES["file"]
            fdata = file.read(file.size)
            b = base64.b64encode(fdata)
            from StringIO import StringIO
    content=StringIO(fdata)
    upload_dir = settings.MEDIA_ROOT
            destination =os.path.join(upload_dir, image_name)
    from PIL import Image
        img = Image.open(content)
    image_to_scratch(img,destination)

            return render_to_response('ocr/ocr.html',{
                    'filename':file.name,
                    'hasImage':True,
                    'imgdata':r'data:image/png;base64,' + b

            })

3 个答案:

答案 0 :(得分:0)

您的代码格式不太好,所以我没有读过,但我建议检查django实例运行的用户,如果您使用mod_wsgi部署检查:

http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

答案 1 :(得分:0)

似乎用户Django运行不是'hsrd'。 你可以:

  • 在'hsrd'用户下运行Django(可能不可行)
  • 清除目录,使其属于Django在
  • 下运行的用户
  • (最简单)Chmod 775目录

答案 2 :(得分:0)

假设在@agos中是正确的,并且您将其作为“apache”或“httpd”用户运行,那么合理有效的解决方案是将目录的所有权更改为运行该目录的同一用户Apache / Modpython进程。

chown -R apache:apache fully_quality_dir_path

应该做的伎俩。确保获得media_root目录及其下的所有内容,至少基于上面的代码段。