【发布时间】:2023-03-31 04:45:02
【问题描述】:
更新(2018 年 6 月 22 日)
我编写了一个所见即所得的编辑器。输入文本的区域只是一个内容可编辑的 div。我遇到了图像/上传/文件上传按钮的问题。我希望“选择文件”按钮在上传时在可编辑的内容中显示视频/图像。但是,我不希望上传将图像/视频/文件存储在数据库中。基本上,我希望当我插入图像/视频时,图像/视频将显示在可编辑的内容中。 (更新:当我上传图像/视频时,对于图像,会显示一个带有白色问号的蓝色方块,对于视频,除了所有其他元素都被移动,就好像实际插入了一个元素一样,什么都没有显示。)
HTML:
<form id = "upload_form" enctype = "multipart/form-data" method = "post"></form>
<input type = "file" name = "file1" id = "file1"><br>
<input type = "button" value = "Upload File" onclick = "uploadFile()">
<progress id = "progressBar" value = "0" max = "100" style = "width: 300px;"></progress>
<h3 id = "status"></h3>
<p id = "loaded_n_total"></p>
Javascript:
function _(el){
return document.getElementById(el);
}
function uploadFile(){
var file = _("file1").files[0];
//Added
var fileType = _("file1").files[0]['type'];
if(fileType.split('/')[0] == 'image'){
alert("Image");
$('#editor').prepend('<img src= file />')
}
else if(fileType.split('/')[0] == 'video'){
alert("Video");
$('#editor').prepend('<video><source src=file type="video/mp4"></video>');
}
//End of Added
//alert(file.name + " | " + file.size + " | " + file.type);
var formdata = new FormData();
formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "file_upload_parser.php");
ajax.send();
}
function progressHandler(event){
_("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;
var percent = (event.loaded / event.total) * 100;
_("progressBar").value = Math.round(percent);
_("status").innerHTML = Math.round(percent); + "% uploaded ... please wait";
}
function completeHandler(event) {
_("status").innerHTML = event.target.responseText;
_("progressBar").value = 0;
}
function errorHandler(event) {
_("status").innerHTML = "Uploaded Failed";
}
function abortHandler(event) {
_("status").innerHTML = "Uploaded Aborted";
}
【问题讨论】:
-
你试过了吗? stackoverflow.com/questions/941206/… 运气好吗?如果图像通过 AJAX 成功上传,那么我认为您需要做的只是将其附加到您当前的 div 中。
-
我已将代码更新为使用 prepend 方法。但是,当我将文件作为图像添加时,会出现一个带有白色问号的蓝色方块。
标签: javascript html editor wysiwyg