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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user