Не могу использовать "image.save" на Django - PullRequest
1 голос
/ 19 апреля 2010

Моя ошибка:

IOError at /mytest/photo/upload/

[Errno 2] No such file or directory: u'/mytest/photo/upload/2.png'

И мой взгляд:

UPLOAD_URL = '/mytest/photo/upload/'

def upload(request):
    buf = request.FILES.get('photo', None)
    print buf
    if buf:
        #data = buf.read()
        #f = StringIO.StringIO(data)
        image = Image.open(buf)
        #image = image.convert('RGB')
        name = '%s%s' % (UPLOAD_URL, buf.name)
        image.save(file(name, 'wb'), 'PNG')
        return HttpResponse('ok')
    return HttpResponse('no')

И мой urls.py:

urlpatterns = patterns('mytest.views',
    url(r'^photo/upload/$','upload',name="")
)

Как я могу это исправить?

1 Ответ

0 голосов
/ 19 апреля 2010

Вы должны указать локальный путь, куда вы хотите сохранить файл. UPLOAD_URL - это путь к вашему представлению, а не каталог.

имя переменной UPLOAD_PATH с полным путем для загрузки

затем сделайте что-то вроде:

UPLOAD_PATH = '/path/to/uploads/user'
if not os.path.isdir(UPLOAD_PATH):
    os.mkdir(UPLOAD_PATH)
file_path = os.path.join(UPLOAD_PATH, filename)
# security check
if os.path.abspath(file_path ).startswith(UPLOAD_PATH):
    image.save(file(file_path , 'wb'), 'PNG')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...