2010-07-09 39 views
2

保存圖像(13「權限被拒絕」)試圖上傳在Django 的圖像時,我檢查了其中的圖像將被保存 drwxr目錄的訪問權限發生錯誤-xr-x 2 hsrd hsrd 4096 2010-03-19 15:49媒體問題的上傳和Django中

請爲此提出解決方案。

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 

      }) 

回答

0

你的代碼的心不是格式化的太清楚,所以我還沒有讀到,但我會建議Django的實例運行作爲用戶檢查,如果要部署與mod_wsgi的檢查:

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

+0

我沒有使用mod_wsgi.i,如教程http://docs.djangoproject.com/en/dev/howto/deployment/modpython/?from=olddocs – indu 2010-07-09 09:01:50

+0

中所述,嘗試使用modpython解決了問題,改變了文件路徑在哪個圖像保存到/ tmp – indu 2010-07-09 10:51:41

+0

即時消息很高興你已經解決了這個問題,但如果圖像要永久存儲/ tmp不是他們去的地方! – sjh 2010-07-13 16:58:11

0

看來,用戶Django運行下不是'hsrd'。 您可以:

  • 運行的Django的「hsrd」用戶下(可能是不可行的)
  • CHOWN目錄因此它屬於Django是在
  • (最簡單的)搭配chmod 775的目錄中運行的用戶
+0

Thnaks的答案。我已經嘗試了第三種選擇,但它不工作 – indu 2010-07-09 09:28:49

0

假設在@agos是正確的,並且您將其作爲「apache」或「httpd」用戶來運行,那麼合理有效的解決方案是將該目錄的所有權更改爲同一用戶這是運行Apache/Modpython進程。

chown -R apache:apache fully_quality_dir_path 

應該這樣做。請確保您獲得media_root目錄及其下的所有內容,至少基於上面的代碼片段。