Django上传文件不在MEDIA_ROOT路径中给我SuspiciciousOperation错误
我想将文件上传到仍在我的django项目中,但在我的MEDIA_ROOT
路径中的路径。Django上传文件不在MEDIA_ROOT路径中给我SuspiciciousOperation错误
当我尝试这样做时,我得到一个SuspiciousOperation
错误。
下面是在我的设置文件中定义的路径:
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname(__file__), 'uploads')
我这样做,因为我不希望我上传是通过浏览器访问的文件和我的MEDIA_ROOT
路径。
有没有人有任何想法如何解决(修复)这个错误。
从文档:
例如,将 商店上传的文件下 /媒体/照片,无论你的 MEDIA_ROOT设置的下面的代码是:
from django.db import models
from django.core.files.storage import FileSystemStorage
fs = FileSystemStorage(location='/media/photos')
class Car(models.Model):
...
photo = models.ImageField(storage=fs)
+1这值得了解。太糟糕OP将不会投票这个最好的答案。 – hughdbrown 2010-09-22 21:28:25
我有同样的问题。是否你(和文档)说,我得到以下例外'FileFields需要一个“upload_to”属性.'我粘贴整个块在这里:http://dpaste.com/hold/533577/任何想法? – xpanta 2011-04-19 14:22:07
只需将upload_to添加为与位置相同的值即可。 – Tom 2011-08-31 19:28:28
您可以禁止网络服务器公开提供某个导演ies在MEDIA_ROOT下。 – 2010-09-02 23:20:31
我现在正在使用测试服务器...在Windows XP上。我也不确定如何做到这一点。 – imns 2010-09-02 23:25:43
我不认为开发服务器可以,但任何生产就绪的Web服务器都应该能够限制对这些文件的访问。例如,[这里](http://httpd.apache.org/docs/2.0/misc/security_tips.html#protectserverfiles)是Apache的做法。 – 2010-09-02 23:29:40