Anonymous
Я пытаюсь отправить видео в форматах, используя ReactJS. Когда я отправляюсь, получение Videourl в ответ как NULL
Сообщение
Anonymous » 30 апр 2025, 22:32
Я работаю над голосованием. Когда я создаю голосование и отправляю видео с FormData, используя ReactJS, он успешно отправляется, но в ответ Videourl является нулевым. Теперь, когда я нажимаю на редактирование одного и того же голосования, называется GetVoteByid API, и в ответ я вижу, как присутствует Videourl, а также предварительно пропалывает видео, которое доказывает, что Vyse Video сохраняется. Но главная проблема начинается здесь, когда я обновляю голосование, оно успешно сохраняется, но опять же, Videourl является нулевым, и в настоящее время, когда я нажимаю на редактирование, в настоящее время мой Videourl пуст, а предварительный просмотр также не показывает. FormData.Isactive) => {
if (e) e.preventDefault (); < /p>
Код: Выделить всё
// Validate required fields
if (!formData.title.trim()) {
toast.error("Title is required");
return;
}
if (!formData.description.trim()) {
toast.error("Description is required");
return;
}
if (!questionType.trim()) {
toast.error("Option type is required");
return;
}
if (!priority) {
toast.error("Set Priority is required");
return;
}
const userId = Cookies.get("userId");
const token = Cookies.get("token");
if (!userId || !token) {
toast.error("Missing credentials");
return;
}
const dataToSubmit = new FormData();
dataToSubmit.append("UserId", userId);
dataToSubmit.append("Title", formData.title);
dataToSubmit.append("Description", formData.description);
dataToSubmit.append("OptionType", questionType);
// dataToSubmit.append("isActive", formData.isActive);
dataToSubmit.append("isActive", activeStatus);
dataToSubmit.append("Priority", formData.priority);
let optionsArray = [];
if (questionType === "custom options") {
optionsArray = mcqOptions.filter((opt) => opt.trim() !== "");
} else if (questionType === "Yes/No") {
optionsArray = ["Yes", "No", "I don't know"];
} else if (questionType === "True/False") {
optionsArray = ["True", "False", "I don't know"];
}
optionsArray.forEach((opt) => dataToSubmit.append("Options", opt));
if (formData.image) {
dataToSubmit.append("Images", formData.image);
}
if (formData.video) {
dataToSubmit.append("video", formData.video);
} else if (videoUrl) {
dataToSubmit.append("videoUrl", videoUrl);
}
let imageUrlsToSend = imageUrl;
// Handle potential double-stringification or dirty strings
if (typeof imageUrlsToSend === "string") {
try {
// Attempt to parse stringified array
const parsed = JSON.parse(imageUrlsToSend);
if (Array.isArray(parsed)) {
imageUrlsToSend = parsed;
} else {
imageUrlsToSend = [parsed];
}
} catch (e) {
// Fallback: extract URL from string using regex
const urlMatch = imageUrlsToSend.match(/https?:\/\/[^\s"]+/g);
imageUrlsToSend = urlMatch ? urlMatch : [imageUrlsToSend];
}
} else if (!Array.isArray(imageUrlsToSend)) {
imageUrlsToSend = [imageUrlsToSend];
}
if (voteId) dataToSubmit.append("VoteId", voteId);
try {
const response = await axios({
method: voteId ? "put" : "post",
url: voteId
? `${VOTE_URL}/Votes/update-vote`
: `${VOTE_URL}/Votes/create-vote`,
data: dataToSubmit,
headers: {
"Content-Type": "multipart/form-data",
Authorization: `Bearer ${token}`,
},
});
console.log("Response after vote is created: ", response.data);
toast.success(
voteId
? "Vote updated successfully!"
: "Congrats! Your Vote is created successfully!"
);
setQuestionType("");
setMcqOptions([]);
setImageUrl("");
setVideoUrl("");
setIsActive(isActive);
setPriority(null);
setFormData({
title: "",
description: "",
image: null,
video: null,
questionType: "",
yesNoOrTrueFalse: null,
mcqOptions: [],
priority: null,
});
} catch (error) {
console.error("Submit error:", error.response?.data || error.message);
toast.error("Something went wrong!");
}
};
Подробнее здесь:
https://stackoverflow.com/questions/796 ... it-getting
1746041540
Anonymous
Я работаю над голосованием. Когда я создаю голосование и отправляю видео с FormData, используя ReactJS, он успешно отправляется, но в ответ Videourl является нулевым. Теперь, когда я нажимаю на редактирование одного и того же голосования, называется GetVoteByid API, и в ответ я вижу, как присутствует Videourl, а также предварительно пропалывает видео, которое доказывает, что Vyse Video сохраняется. Но главная проблема начинается здесь, когда я обновляю голосование, оно успешно сохраняется, но опять же, Videourl является нулевым, и в настоящее время, когда я нажимаю на редактирование, в настоящее время мой Videourl пуст, а предварительный просмотр также не показывает. FormData.Isactive) => { if (e) e.preventDefault (); < /p> [code]// Validate required fields if (!formData.title.trim()) { toast.error("Title is required"); return; } if (!formData.description.trim()) { toast.error("Description is required"); return; } if (!questionType.trim()) { toast.error("Option type is required"); return; } if (!priority) { toast.error("Set Priority is required"); return; } const userId = Cookies.get("userId"); const token = Cookies.get("token"); if (!userId || !token) { toast.error("Missing credentials"); return; } const dataToSubmit = new FormData(); dataToSubmit.append("UserId", userId); dataToSubmit.append("Title", formData.title); dataToSubmit.append("Description", formData.description); dataToSubmit.append("OptionType", questionType); // dataToSubmit.append("isActive", formData.isActive); dataToSubmit.append("isActive", activeStatus); dataToSubmit.append("Priority", formData.priority); let optionsArray = []; if (questionType === "custom options") { optionsArray = mcqOptions.filter((opt) => opt.trim() !== ""); } else if (questionType === "Yes/No") { optionsArray = ["Yes", "No", "I don't know"]; } else if (questionType === "True/False") { optionsArray = ["True", "False", "I don't know"]; } optionsArray.forEach((opt) => dataToSubmit.append("Options", opt)); if (formData.image) { dataToSubmit.append("Images", formData.image); } if (formData.video) { dataToSubmit.append("video", formData.video); } else if (videoUrl) { dataToSubmit.append("videoUrl", videoUrl); } let imageUrlsToSend = imageUrl; // Handle potential double-stringification or dirty strings if (typeof imageUrlsToSend === "string") { try { // Attempt to parse stringified array const parsed = JSON.parse(imageUrlsToSend); if (Array.isArray(parsed)) { imageUrlsToSend = parsed; } else { imageUrlsToSend = [parsed]; } } catch (e) { // Fallback: extract URL from string using regex const urlMatch = imageUrlsToSend.match(/https?:\/\/[^\s"]+/g); imageUrlsToSend = urlMatch ? urlMatch : [imageUrlsToSend]; } } else if (!Array.isArray(imageUrlsToSend)) { imageUrlsToSend = [imageUrlsToSend]; } if (voteId) dataToSubmit.append("VoteId", voteId); try { const response = await axios({ method: voteId ? "put" : "post", url: voteId ? `${VOTE_URL}/Votes/update-vote` : `${VOTE_URL}/Votes/create-vote`, data: dataToSubmit, headers: { "Content-Type": "multipart/form-data", Authorization: `Bearer ${token}`, }, }); console.log("Response after vote is created: ", response.data); toast.success( voteId ? "Vote updated successfully!" : "Congrats! Your Vote is created successfully!" ); setQuestionType(""); setMcqOptions([]); setImageUrl(""); setVideoUrl(""); setIsActive(isActive); setPriority(null); setFormData({ title: "", description: "", image: null, video: null, questionType: "", yesNoOrTrueFalse: null, mcqOptions: [], priority: null, }); } catch (error) { console.error("Submit error:", error.response?.data || error.message); toast.error("Something went wrong!"); } [/code] }; Подробнее здесь: [url]https://stackoverflow.com/questions/79600995/i-am-trying-to-send-a-video-in-a-formdata-using-reactjs-when-i-submit-getting[/url]