fix: Create user directory before file upload

Additional fix:
- tokio::fs::File::create() fails if directory doesn't exist
- Need to create user_dir before creating file
- Added tokio::fs::create_dir_all(&user_dir).await

Change:
- Line 740-750: Added directory creation before file creation
- Error handling: return 500 if create_dir fails

Flow:
1. user_dir = format!({}/{}, base_dir, user_id)
2. create_dir_all(user_dir) ← NEW
3. File::create(file_path)

Test result:
 momentry upload → file saved to momentry directory
 Directory auto-created if not exists

Files:
- src/server.rs (added create_dir_all)
This commit is contained in:
Warren
2026-05-17 01:36:03 +08:00
parent e3a5323196
commit 2898935932

View File

@@ -739,6 +739,15 @@ async fn upload_file(
filename = field.file_name().unwrap_or("upload.bin").to_string();
let file_path = format!("{}/{}", user_dir, filename);
// Create user directory if not exists
if let Err(e) = tokio::fs::create_dir_all(&user_dir).await {
return (
StatusCode::INTERNAL_SERVER_ERROR,
Json(serde_json::json!({"error": format!("create_dir error: {}", e)})),
)
.into_response();
}
let mut hasher = Sha256::new();
let mut total_written: u64 = 0;