ueditor單獨調用上傳附件和圖片的功能


ueditor單獨調用上傳附件和圖片的功能

第一步, 引入文件

<script src="jquery.min.js" type="text/javascript" ></script>

<script src="ueditor/ueditor.config.js" type="text/javascript" ></script>
<script src="ueditor/ueditor.all.min.js" type="text/javascript" ></script>

第二步 html元素

<script type="text/plain" id="upload_ue"></script>

調用的頁面:
<input type="text" id="picture" name="cover" /><a href="javascript:void(0);" onclick="upImage();">上傳圖片</a>
<input type="text" id="file" /><a href="javascript:void(0);" onclick="upFiles();">上傳文件</a>


第三步 編寫js代碼

<script type="text/javascript">
var _editor;
$(function() {

//重新實例化一個編輯器,防止在上面的editor編輯器中顯示上傳的圖片或者文件
_editor = UE.getEditor('upload_ue');
_editor.ready(function () {
//設置編輯器不可用
_editor.setDisabled();
//隱藏編輯器,因為不會用到這個編輯器實例,所以要隱藏
_editor.hide();
//偵聽圖片上傳
_editor.addListener('beforeInsertImage', function (t, arg) {
//將地址賦值給相應的input,只去第一張圖片的路徑
$("#picture").attr("value", arg[0].src);
//圖片預覽
$("#preview").attr("src", arg[0].src);
})
//偵聽文件上傳,取上傳文件列表中第一個上傳的文件的路徑
_editor.addListener('afterUpfile', function (t, arg) {
$("#file").attr("value", _editor.options.filePath + arg[0].url);
})
});
});
//彈出圖片上傳的對話框
function upImage() {
var myImage = _editor.getDialog("insertimage");
myImage.open();
}
//彈出文件上傳的對話框
function upFiles() {
var myFiles = _editor.getDialog("attachment");
myFiles.open();
}
</script>

第四步 最重要的一步, 修改bug

打開image插件的image.js 108行
editor.execCommand('insertimage', list);代碼之前加入
editor.fireEvent('beforeinsertimage', list);然后問題搞定

第五步,如果第四步不行,請參考這一步

在ueditor文件夾中找到文件dialogs\attachment\attachment.js中找到代碼

editor.execCommand('insertfile', list);

在這行代碼前添加editor.fireEvent('afterUpfile', list);然后問題搞定

 

ps:version:1.4.3.2

補充:

若一個頁面多個上傳:
參考下面改動:


<script type="text/plain" id="upload_ue"></script>
<script type="text/javascript">
//重新實例化一個編輯器,防止在上面的editor編輯器中顯示上傳的圖片或者文件
var _editor = UE.getEditor('upload_ue');
_editor.ready(function () {
//設置編輯器不可用
_editor.setDisabled('insertimage');
//隱藏編輯器,因為不會用到這個編輯器實例,所以要隱藏
_editor.hide();
//偵聽圖片上傳
_editor.addListener('beforeInsertImage', function (t, arg) {
//將地址賦值給相應的input,只去第一張圖片的路徑
// $("#picture").attr("value", arg[0].src);
//圖片預覽

//判斷是那個圖片上傳按鈕的命令
var yf=document.getElementById("orderNum").value;
// alert(yf);
if (yf=='pic1')
{
$("#previewPic1").attr("src", arg[0].src);
$("#pic1").attr("value", arg[0].src);
}
else if (yf=='pic2'){
$("#previewPic2").attr("src", arg[0].src);
$("#pic2").attr("value", arg[0].src);
}
else if (yf=='pic3'){
$("#previewPic3").attr("src", arg[0].src);
$("#pic3").attr("value", arg[0].src);
}
else if (yf=='pic4'){
$("#previewPic4").attr("src", arg[0].src);
$("#pic4").attr("value", arg[0].src);
}
else
{
$("#preview").attr("src", arg[0].src);
$("#picture2").attr("value", arg[0].src);

}

})

});
//彈出圖片上傳的對話框
function upImage() {
var myImage = _editor.getDialog("insertimage");
myImage.open();
}

</script>

<input type="text" id="picture2" name="cover" /><a href="javascript:void(0);" onClick="upImage();">上傳圖片</a>
<img src="" id="preview" /><br />

<input type="hidden" id="orderNum"/><input type="text" id="pic1" /> <img src="" id="previewPic1" /><a href="javascript:void(0);" onClick="upImg('pic1');">上傳圖片</a>
<br />
<input type="text" id="pic2" /> <img src="" id="previewPic2" /><a href="javascript:void(0);" onClick="upImg('pic2');">上傳圖片</a>
<br />
<input type="text" id="pic3" /> <img src="" id="previewPic3" /><a href="javascript:void(0);" onClick="upImg('pic3');">上傳圖片</a>
<br />
<input type="text" id="pic4" /> <img src="" id="previewPic4" /><a href="javascript:void(0);" onClick="upImg('pic4');">上傳圖片</a>

<script>
function upImg(a){
document.getElementById('orderNum').value=a;
//alert(document.getElementById('orderNum').value);
upImage();

 


}
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM