mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-24 09:48:28 +02:00
Guess mime type on multi-part when not set
This commit is contained in:
5
src-tauri/Cargo.lock
generated
5
src-tauri/Cargo.lock
generated
@@ -2929,9 +2929,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mime_guess"
|
name = "mime_guess"
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
|
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"mime",
|
"mime",
|
||||||
"unicase",
|
"unicase",
|
||||||
@@ -7347,6 +7347,7 @@ dependencies = [
|
|||||||
"hex_color",
|
"hex_color",
|
||||||
"http 1.1.0",
|
"http 1.1.0",
|
||||||
"log",
|
"log",
|
||||||
|
"mime_guess",
|
||||||
"objc",
|
"objc",
|
||||||
"openssl-sys",
|
"openssl-sys",
|
||||||
"plugin_runtime",
|
"plugin_runtime",
|
||||||
|
|||||||
@@ -55,3 +55,4 @@ tokio = { version = "1.36.0", features = ["sync"] }
|
|||||||
tokio-stream = "0.1.15"
|
tokio-stream = "0.1.15"
|
||||||
uuid = "1.7.0"
|
uuid = "1.7.0"
|
||||||
thiserror = "1.0.61"
|
thiserror = "1.0.61"
|
||||||
|
mime_guess = "2.0.5"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use base64::Engine;
|
|||||||
use http::header::{ACCEPT, USER_AGENT};
|
use http::header::{ACCEPT, USER_AGENT};
|
||||||
use http::{HeaderMap, HeaderName, HeaderValue};
|
use http::{HeaderMap, HeaderName, HeaderValue};
|
||||||
use log::{error, info, warn};
|
use log::{error, info, warn};
|
||||||
|
use mime_guess::Mime;
|
||||||
use reqwest::redirect::Policy;
|
use reqwest::redirect::Policy;
|
||||||
use reqwest::Method;
|
use reqwest::Method;
|
||||||
use reqwest::{multipart, Url};
|
use reqwest::{multipart, Url};
|
||||||
@@ -318,13 +319,21 @@ pub async fn send_http_request(
|
|||||||
.as_str()
|
.as_str()
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
|
// Set or guess mimetype
|
||||||
if !ct_raw.is_empty() {
|
if !ct_raw.is_empty() {
|
||||||
let content_type = render::render(ct_raw, &vars);
|
let content_type = render::render(ct_raw, &vars);
|
||||||
part = part
|
part = part
|
||||||
.mime_str(content_type.as_str())
|
.mime_str(content_type.as_str())
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
} else if !file_path.is_empty() {
|
||||||
|
let default_mime = Mime::from_str("application/octet-stream").unwrap();
|
||||||
|
let mime = mime_guess::from_path(file_path).first_or(default_mime);
|
||||||
|
part = part
|
||||||
|
.mime_str(mime.essence_str())
|
||||||
|
.map_err(|e| e.to_string())?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set fil path if not empty
|
||||||
if !file_path.is_empty() {
|
if !file_path.is_empty() {
|
||||||
let filename = PathBuf::from(file_path)
|
let filename = PathBuf::from(file_path)
|
||||||
.file_name()
|
.file_name()
|
||||||
|
|||||||
Reference in New Issue
Block a user