Check if file can be loaded during disk image upload
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		@@ -30,8 +30,9 @@ pub const ALLOWED_ISO_MIME_TYPES: [&str; 4] = [
 | 
			
		||||
pub const ISO_MAX_SIZE: FileSize = FileSize::from_gb(10);
 | 
			
		||||
 | 
			
		||||
/// Allowed uploaded disk images formats
 | 
			
		||||
pub const ALLOWED_DISK_IMAGES_MIME_TYPES: [&str; 3] = [
 | 
			
		||||
pub const ALLOWED_DISK_IMAGES_MIME_TYPES: [&str; 4] = [
 | 
			
		||||
    "application/x-qemu-disk",
 | 
			
		||||
    "application/x-raw-disk-image",
 | 
			
		||||
    "application/gzip",
 | 
			
		||||
    "application/octet-stream",
 | 
			
		||||
];
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,15 @@ pub async fn upload(MultipartForm(mut form): MultipartForm<UploadDiskImageForm>)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Copy the file to the destination
 | 
			
		||||
    file.file.persist(dest_path)?;
 | 
			
		||||
    file.file.persist(&dest_path)?;
 | 
			
		||||
 | 
			
		||||
    // Check if file information can be loaded
 | 
			
		||||
    if let Err(e) = DiskFileInfo::load_file(&dest_path) {
 | 
			
		||||
        log::error!("Failed to get information about uploaded disk file! {e}");
 | 
			
		||||
        std::fs::remove_file(&dest_path)?;
 | 
			
		||||
        return Ok(HttpResponse::InternalServerError()
 | 
			
		||||
            .json(format!("Unable to process uploaded file! {e}")));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Ok(HttpResponse::Ok().json("Successfully uploaded disk image!"))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user