Django のローカル バージョンでは画像のアップロードが期待どおりに処理されているのに、私のサーバーでは処理されていないという問題があります。注: MediaTemple.net (グリッド サーバー) で Django コンテナーを使用しています。
これが私のコードです。
def view_settings(request):
<snip>
if request.POST:
success_msgs = ()
mForm = MainProfileForm(request.POST, request.FILES, instance = mProfile)
pForm = ChangePasswordForm(request.POST)
eForm = ChangeEmailForm(request.POST)
if mForm.is_valid():
m = mForm.save(commit = False)
if mForm.cleaned_data['avatar']:
m.avatar = upload_photo(request.FILES['avatar'], settings.AVATAR_SAVE_LOCATION)
m.save()
success_msgs += ('profile pictured updated',)
<snip>
def upload_photo(data,saveLocation):
savePath = os.path.join(settings.MEDIA_ROOT, saveLocation, data.name)
destination = open(savePath, 'wb+')
for chunk in data.chunks():
destination.write(chunk)
destination.close()
return os.path.join(saveLocation, data.name)
ここが奇妙になる場所であり、誰かがこのエラーに光を当ててくれることを望んでいました。
- エラーコードが間違っている、または
- ファイルが完全に処理される前に、ファイルで何かが起こっています。
要約すると、ファイルは実際にはサーバーの意図したディレクトリにアップロードされましたが、このエラーメッセージは引き続き表示されます。
/user/settings の IOError
[Errno 2] そのようなファイルまたはディレクトリはありません: u'/home/user66666/domains/example.com/html/media/images/avatars/DSC03852.JPG'
環境:
リクエスト方法: POST リクエスト URL: http://111.111.111.111:2011/user/settings Django バージョン: 1.0.2 最終版 Python バージョン: 2.4.4 インストール済みアプリケーション: ['django.contrib.auth', 'django.contrib. contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'ctrlme', 'usertools', 'easy_thumbnails'] インストールされたミドルウェア: ('django.middleware.common.CommonMiddleware', 'django.contrib. sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware')
トレースバック: ファイル "/home/user6666/containers/django/leonidas/usertools/views.py" in view_settings 51. m.avatar = upload_photo(request.FILES['avatar'], settings.AVATAR_SAVE_LOCATION) ファイル "/home/user666666 /containers/django/leonidas/usertools/functions.py" in upload_photo 91. destination = open(savePath, 'wb+')