GoogleとStackOverflowの両方で多くの同様の質問がありましたが、満足できる解決策ではありません。私は手順here次jQuery File Uploadを使用していますDjangoのサーバー上の動的パスにファイルを書き込む
- この
私の状況です。
ファイルを保存する場所は動的で、username
とsession_key
に依存します。
これは、ファイルを書き込むための機能です -
def handle_uploaded_file(file, session_key, username):
folder_path = os.path.dirname(os.path.realpath(__file__)) + '\\Source\\' + username + '\\session_id_' + session_key
if not os.path.exists(folder_path):
os.makedirs(folder_path)
save_path = folder_path + '\\Source Files'
with open(save_path, 'wb+') as destination:
for chunk in file.chunks():
destination.write(chunk)
私は「normal.csv」という名前のファイルをアップロードしようとしたが、代わりに私は、ディレクトリ内の拡張子なしの「ソースファイル」という名前のファイルを持って。私は
with open(save_path+file.name, 'wb+') as destination
にopen()
関数内でパスを変更し
私は「ソースFilesnormal.csv」という名前のファイルを得ました。
私はその後folder_path + '\\Source Files\\'
にsave_path
を変更しようとしました、そしてopen()
にsave_path+file.name
に渡されますが、それはNo such file or directory
言いました。
私はそのフォルダの場所に入り、ファイルを書き込む方法について非常に混乱しています。
username
とsession_key
に依存するため、ここではMEDIA_URL
を使用できません。
宛先パスを取得するために 'os.path.join'を使用してください。文字列の連結は、その目的のための良い方法ではありません。 – ohannes