立即注册 登录
彼岸网 返回首页

天香公主的个人空间 http://www.bian-wang.com/discuz/?10005 [收藏] [复制] [分享] [RSS] txgz999@yahoo.com

日志

Discuz功能改进:支持iPad的文件上传

热度 5已有 3570 次阅读2014-12-10 10:56 PM |个人分类:Discuz|系统分类:社交网理论与实践

我们前面对日志页在编辑状态下上传图片的功能做过分析(链接),说过那里用的是别的公司开发的基于Flash技术的SWFUpload组件。鉴于iPad不支持Flash,日志编辑页上的'选择文件上传'按钮在iPad上就不显示,更不用说在那里上传文件了。而且这个组件的开发工作已经处于停滞状态。但是这个组件相比Html标准里的上传功能而言的确有诸多优点,比如可以一次选择多个文件上传,不用更新网页就能完成上传等。那么有没有既有这些优点,又不依赖于Flash,最好还能和现有的Discuz上传框架和代码相匹配的SWFUpload的替代品呢?本文就来探讨一下如何用百度团队新近开发的WebUploader组件(链接)来实现这个要求。这个组件同时支持新的Html5标准的上传功能和Flash上传功能,可以按客户端所用的浏览器的类型来决定使用哪个上传功能。预计Discuz不久在新版本里也会寻求摆脱陈旧的Flash技术的出路。

首先我们在文件夹static里加个子文件夹webuploader,放入WebUploader提供的三个文件:
  • Uploader.swf
  • webuploadr.nolog.js
  • webuploader.css

接着在上传文件对话框的代码文件editor_image_menu.htm里将新的上传按钮加在原来的按钮旁便于比较,我们也可以去掉原来的按钮以及SWFUpload实例:
<span id="imgSpanButtonPlaceholder"></span> <div id="picker" style="margin-left: 10px; display:inline-block;">选择文件上传</div>


再在原来的SWFUpload实例
var upload = new SWFUpload({ upload_url: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=<!--{if $_G['basescript'] == 'portal'}-->portal<!--{else}-->album<!--{/if}-->", post_params: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"<!--{if $_G['basescript'] == 'portal'}-->,"aid":$aid,"catid":$catid<!--{/if}-->}, file_size_limit : "$swfconfig[max]", file_types : "$swfconfig[imageexts][ext]", file_types_description : "$swfconfig[imageexts][depict]", file_upload_limit : 0, file_queue_limit : 0, swfupload_preload_handler : preLoad, swfupload_load_failed_handler : loadFailed, file_dialog_start_handler : fileDialogStart, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, button_image_url : "{IMGDIR}/uploadbutton.png", button_placeholder_id : "imgSpanButtonPlaceholder", button_width: 100, button_height: 25, button_cursor:SWFUpload.CURSOR.HAND, button_window_mode: "transparent", custom_settings : { progressTarget : "imgUploadProgress", uploadSource: 'portal', uploadType: <!--{if $_G['basescript'] == 'portal'}-->'portal'<!--{else}-->'blog'<!--{/if}-->, imgBoxObj: $('imgattachlist') }, debug: false }); 的后面加上新的WebUploader实例:
<link rel="stylesheet" type="text/css" href="static/webuploader/webuploader.css"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="static/webuploader/webuploader.nolog.js"></script> <script type="text/javascript"> var uploader = WebUploader.create({ auto: true, swf: 'static/webuploader/Uploader.swf', server: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=<!--{if $_G['basescript'] == 'portal'}-->portal<!--{else}-->album<!--{/if}-->", formData: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"<!--{if $_G['basescript'] == 'portal'}-->,"aid":$aid,"catid":$catid<!--{/if}-->}, compress: false, duplicate: true, fileSingleSizeLimit: 1000*$swfconfig[max], fileVal: 'Filedata', pick: '#picker', accept: { title: 'Images', extensions: "$swfconfig[imageexts][ext]".replace(/;/g,",").replace(/\*./g,""), // "*.jpg;*.jpeg;*.gif;*.png;*.bmp" => "jpg,jpeg,gif,png,bmp" mimeTypes: 'image/*' }, onFileQueued: function (file) { fileQueued.call(this, file); }, onUploadBeforeSend: function (obj, data, headers) { uploadStart.call(this, obj.file); }, onUploadProgress: function (file, percentage) { uploadProgress.call(this, file, Math.ceil(percentage*file.size), file.size); }, onUploadSuccess: function (file, data) { uploadSuccess.call(this, file, data._raw); }, onError: function (type, p1, p2) { var file, errorCode; switch (type) { case 'F_EXCEED_SIZE': file = p2; // p1: size errorCode = SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT; break; case 'Q_TYPE_DENIED': file = p1; errorCode = SWFUpload.QUEUE_ERROR.INVALID_FILETYPE; break; } if (errorCode) fileQueueError.call(this, file, errorCode); } }); uploader.customSettings = { progressTarget : "imgUploadProgress", uploadSource: 'portal', uploadType: <!--{if $_G['basescript'] == 'portal'}-->'portal'<!--{else}-->'blog'<!--{/if}-->, imgBoxObj: document.getElementById('imgattachlist') }; jQuery.noConflict(); </script>
注意这个实例的各类参数值都是基于原来的实例的内容,如单个文件大的上限是原来值的1000倍那是因为这里的单位是byte而那里是kb。这样我们就能够让新实例沿用现有的Discuz处理上传的有关代码。提供SWFUpload支持的Javascript函数都定义在static/js/upload.js里,这个文件其实是另外两个文件swfupload.js和handlers.js的合并。前者是SWFUpload组件开发者提供的,为SWFUpload组件服务和专用的。而后者包含Discuz监听SWFUpload提供的上传过程中的各种事件的处理函数,是起根据事件及其带来的参数来改变页面的功能。这部分代码仍然可用。但要注意两点:
1)在新的WebUploader实例里我们监听的是WebUploader提供的各种上传事件,所以我们要将两者提供的事件做个映射,进而将新事件的处理建立在现有的Discuz提供的原事件的处理代码上,而不是重起炉灶。
2)对新事件的监听得到的参数和原事件处理函数期待的参数不同,在两者之间也要做个映射。幸好的是两者都有的参数file差别不大:

\



检查了Discuz的事件处理代码发现它用到了file的这些性质: id,name,size和type, 而新事件也提供了这些信息,所以两者的映射并不困难,在我们上面的简单的代码里甚至没有转换也就基本能用了。


最后在使用WebUploader过程中发现它有一个问题,它依靠jQuery提供的outerWidth和outerHeight函数来决定DOM元素的实际长度和高度,至少在jQuery1.11.1里这两个函数对隐藏的元素给出错误的结果。而我们的上传图片框正是这样,它在加选择文件上传按钮时是隐藏的,直到用户点击工具条上的添加图片图标后才显示。对此网上有多处讨论过,如这里这里,但甚至一些据说成功的解决方案如 jQuery Actual (链接) 在我们的具体问题里也给出错误结果。最后终于找到一个简单而成功的办法(链接)。我们在文件webuploadr.nolog.js里的下面这段代码后 refresh: function () { var shimContainer = this.getRuntime().getContainer(), button = this.options.button, width = button.outerWidth ? button.outerWidth() : button.width(), height = button.outerHeight ? button.outerHeight() : button.height(), 加了个补丁:if (!button.is(':visible')) { $clone = button.clone().css("visibility", "hidden").appendTo($('BODY')); width = $clone.outerWidth(); height = $clone.outerHeight(); $clone.remove(); }
经过这些修改后,我们现在就可以在iPad上上传图片了:





 



4/1/2016补充: 网友ladyff问及如果用另一个上传组件plupload (链接) 来替代SWFUpload。我试了下,大致把前述文件 editor_image_menu.htm 中的那段 var upload = new SWFUpload({ ... 改为 <script type="text/javascript" src="../../../static/plupload-2.1.8/js/plupload.full.min.js"></script> <script type="text/javascript"> $("imgSpanButtonPlaceholder").innerHTML="<button>选择文件上传</button>"; var uploader = new plupload.Uploader({ browse_button: "imgSpanButtonPlaceholder", url: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=<!--{if $_G['basescript'] == 'portal'}-->portal<!--{else}-->album<!--{/if}-->", file_data_name: "Filedata", filters: { mime_types: [{ title : "Images", extensions : "$swfconfig[imageexts][ext]".replace(/;/g,",").replace(/\*./g,"") }], max_file_size: "$swfconfig[max]kb" }, multipart_params: { uid : "$_G[uid]", hash: "$swfconfig[hash]" <!--{if $_G['basescript'] == 'portal'}--> , aid: "$aid" , catid: "$catid" <!--{/if}--> } }); uploader.init(); uploader.bind('FilesAdded', function(up, files) { uploader.start(); }); uploader.bind('FilesAdded', function(up, files) { plupload.each(files, function(file) { fileQueued.call(this, file); }); uploader.start(); }); uploader.bind('BeforeUpload', function(up, file) { uploadStart.call(up, file); }); uploader.bind('UploadProgress', function(up, file) { uploadProgress.call(up, file, Math.ceil(file.percent/100*file.size), file.size); }); uploader.bind('FileUploaded', function(up, file, response) { uploadSuccess.call(up, file, response.response); }); uploader.bind('Error', function(up, err) { var errorCode; switch (err.code) { case plupload.FILE_SIZE_ERROR: errorCode = SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT; break; case plupload.FILE_EXTENSION_ERROR: errorCode = SWFUpload.QUEUE_ERROR.INVALID_FILETYPE; break; } if (errorCode) fileQueueError.call(up, err.file, errorCode); }); uploader.customSettings = { progressTarget : "imgUploadProgress", uploadSource: 'portal', uploadType: <!--{if $_G['basescript'] == 'portal'}-->'portal'<!--{else}-->'blog'<!--{/if}-->, imgBoxObj: document.getElementById('imgattachlist') }; </script> 即可。这里假定我们下载了plupload-2.1.8解压后放在 static/ 里。

1/7/2018补充: 网友牛肉炖土豆提及在不支持Flash和Flash没被激活的浏览器里,主题列表页下部的快速发贴框的工具栏里的上传附件功能不工作,只显示上传两字,点击上去没任何效果。所以下面讨论下如何用WebUploader在那里实现在有Flash和没有Flash两种情形下都工作的上传功能。

需要对文件 template/default/forum/forumdisplay_fastpost.htm 做两个修改。
1)找到下列内容 <span id="spanButtonPlaceholder">'.lang('template', 'upload').'</span> 将其更换为 <span id="picker" title="'.lang('template', 'upload').'" /> 2)找到下面的内容 <script type="text/javascript"> var upload = new SWFUpload({ upload_url: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=upload&fid=$_G[fid]", post_params: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"}, file_size_limit : "$swfconfig[max]", file_types : "$swfconfig[attachexts][ext]", file_types_description : "$swfconfig[attachexts][depict]", file_upload_limit : $swfconfig['limit'], file_queue_limit : 0, swfupload_preload_handler : preLoad, swfupload_load_failed_handler : loadFailed, file_dialog_start_handler : fileDialogStart, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, button_image_url : "{IMGDIR}/uploadbutton_small.png", button_placeholder_id : "spanButtonPlaceholder", button_width: 17, button_height: 25, button_cursor:SWFUpload.CURSOR.HAND, button_window_mode: "transparent", custom_settings : { progressTarget : "attachlist", uploadSource: 'forum', uploadType: 'attach', <!--{if $swfconfig['maxsizeperday']}--> maxSizePerDay: $swfconfig['maxsizeperday'], <!--{/if}--> <!--{if $swfconfig['maxattachnum']}--> maxAttachNum: $swfconfig['maxattachnum'], <!--{/if}--> uploadFrom: 'fastpost' }, debug: false }); </script> 将其更换为 <link rel="stylesheet" type="text/css" href="static/webuploader/webuploader.css"> <style> .webuploader-pick { background: url("static/image/common/uploadbutton_small.png") no-repeat; padding: 0px; width: 20px; height: 20px; } </style> <script type="text/javascript" src="{$_G[setting][jspath]}forum_post.js?{VERHASH}"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript" src="static/webuploader/webuploader.nolog.js"></script> <script type="text/javascript"> var uploader = WebUploader.create({ auto: true, swf: 'static/webuploader/Uploader.swf', server: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=upload&fid=$_G[fid]", formData: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"}, compress: false, duplicate: true, fileSingleSizeLimit: 1000*$swfconfig[max], fileVal: 'Filedata', pick: '#picker', accept: { title: 'Files', extensions: "$swfconfig[attachexts][ext]".replace(/;/g,",").replace(/\*./g,""), mimeTypes: '*/*' }, onFileQueued: function (file) { fileQueued.call(this, file); $('attach_tblheader').style.display = ''; }, onUploadBeforeSend: function (obj, data, headers) { uploadStart.call(this, obj.file); }, onUploadProgress: function (file, percentage) { uploadProgress.call(this, file, Math.ceil(percentage*file.size), file.size); }, onUploadSuccess: function (file, data) { uploadSuccess.call(this, file, data); }, onError: function (type, p1, p2) { var file, errorCode; switch (type) { case 'F_EXCEED_SIZE': file = p2; // p1: size errorCode = SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT; break; case 'Q_TYPE_DENIED': file = p1; errorCode = SWFUpload.QUEUE_ERROR.INVALID_FILETYPE; break; } if (errorCode) fileQueueError.call(this, file, errorCode); } }); uploader.customSettings = { progressTarget : "attachlist", uploadSource: 'forum', uploadType: 'attach', <!--{if $swfconfig['maxsizeperday']}--> maxSizePerDay: $swfconfig['maxsizeperday'], <!--{/if}--> <!--{if $swfconfig['maxattachnum']}--> maxAttachNum: $swfconfig['maxattachnum'], <!--{/if}--> uploadFrom: 'fastpost' }; jQuery.noConflict(); </script>

发表评论 评论 (22 个评论)

回复 天香公主 2018-1-8 01:22 AM
牛肉炖土豆: 刚测试,试了下,成功了,
经修改后,我的浏览器默认没有开启flash,但是却自动显示了上传按钮,正是我想要的效果,真的太棒了,谢谢天香公主!又解决了 ...
   也许你会遇到些细微的问题,大体应该就是这样了。

和本文讨论的主题内容一样,这只能算是个以尽可能少改动为前提的临时性的修改,所以保留了upload.js不变。我猜如果哪天Discuz用WebUploader或另一个上传组件来替代swfupload时,他们应该会重写upload.js
回复 牛肉炖土豆 2018-1-8 01:06 AM
天香公主: 我将修改的内容补充到文末了,你试试看吧。
刚测试,试了下,成功了,
经修改后,我的浏览器默认没有开启flash,但是却自动显示了上传按钮,正是我想要的效果,真的太棒了,谢谢天香公主!又解决了一道难题。
回复 天香公主 2018-1-8 12:52 AM
牛肉炖土豆: 那如果要使用这个上传呢?这个上传能改成百度团队新近开发的WebUploader组件吗
我将修改的内容补充到文末了,你试试看吧。
回复 牛肉炖土豆 2018-1-7 12:17 AM
天香公主: 如果你只是不要显示上传这两个字,在文件template/default/forum/forumdisplay_fastpost.htm里找到
   .lang('template', 'upload')
删掉便是 ...
那如果要使用这个上传呢?这个上传能改成百度团队新近开发的WebUploader组件吗
回复 天香公主 2018-1-6 11:42 PM
牛肉炖土豆: 天香老师好!,又有问题了....
discuz默认主题列表页的最下面,快速发帖那里,上传按钮无效了,如图
http://www.bian-wang.com/discuz/data/attachment/album/20 ...
如果你只是不要显示上传这两个字,在文件template/default/forum/forumdisplay_fastpost.htm里找到
   .lang('template', 'upload')
删掉便是
回复 牛肉炖土豆 2018-1-6 10:36 PM
天香公主: 谢谢点评。我刚试了试太太用的三星手机,发现那里也有同样问题。我估计Discuz应该会尽快解决这个问题。鉴于它们现在用的别人开发的上传组件已经很久没更新过了, ...
天香老师好!,又有问题了....
discuz默认主题列表页的最下面,快速发帖那里,上传按钮无效了,如图
http://www.bian-wang.com/discuz/data/attachment/album/201801/06/222843o1qbb2gtapgvippl.jpg
这种情况是在不支持flash的情况下出现的,如今新版Chrome和火狐浏览器默认都不支持flash。导致这个按钮很尴尬,请问有办法解决么?》
回复 loveyou520tw 2017-12-25 11:22 PM
好的,哈
回复 天香公主 2017-12-25 11:14 PM
loveyou520tw: 天香老師您好,這邊有個問題想詢問
關於您第二段的再在原来的SWFUpload实例
var upload = new SWFUpload({
                        upload_url: &quot;{$_G[siteurl]}misc.php?mod=sw ...
您好,是问这段代码在哪个文件里吧,是 template/default/home/editor_image_menu.htm
回复 loveyou520tw 2017-12-25 11:00 PM
天香老師您好,這邊有個問題想詢問
關於您第二段的再在原来的SWFUpload实例
var upload = new SWFUpload({
                        upload_url: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=<!--{if $_G['basescript'] == 'portal'}-->portal<!--{else}-->album<!--{/if}-->",
                        post_params: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"<!--{if $_G['basescript'] == 'portal'}-->,"aid":$aid,"catid":$catid<!--{/if}-->},
這邊的修改檔案是修改satic/js/swfupload.js嗎?
回复 ladyff 2016-4-3 11:59 PM
天香公主: 对,如你所见,这个文件里有两个upload实例,用于不同的地方。我替换的那个是用于日志编辑里的图片上传的,另一个实例是用于其它地方的(文章还是相册的我记不清 ...
收到,我研究一下,有问题再请教你。
我打算把所有的都替换掉
回复 ladyff 2016-4-3 11:58 PM
天香公主: 你说的对,我讨论的是日志里的图片上传,因为它在我常用的iPad上不工作,所以当时很想找出解决方法。至于贴子里的图片上传,我后来也讨论过 http://www.bian-wan ...
收到!
想要替换swfupload的原因其实有2个
1.是swfupload的漏洞层出不穷,而discu停止更新后,内嵌的也无法更新了
2.是现在swf基本上是属于即将淘汰的东西了,而html5的兼容性更好,所以用html5替换可能更符合发簪规律
回复 天香公主 2016-4-3 10:44 PM
ladyff: en.昨天回帖完就发现了。你修改的是日志上传。我测试的是论坛里的上传。修改论坛的上传调用需要修改下面3个文件

default\forum\forumdisplay_fastpost.htm
defa ...
你说的对,我讨论的是日志里的图片上传,因为它在我常用的iPad上不工作,所以当时很想找出解决方法。至于贴子里的图片上传,我后来也讨论过 http://www.bian-wang.com/discuz/home.php?mod=space&uid=10005&do=blog&id=1076,我的观察是它在iPad上照样能工作,所以我没感觉到在贴子里有改动的必要,反而是可以将贴子里的做法推广到日志和文章里去。相对于用其他组件来替换掉swfupload,我更推荐所有地方都按贴子的办法使用swfupload,因为swfupload本身能处理好不支持flash的情形,看不出有替换掉它的绝对理由。
回复 天香公主 2016-4-3 10:36 PM
ladyff: 研究了一下你的代码,有几个疑问。
1.原版的调用swfupload是在一个script中,定义了2个上传部分
        <script type=&quot;text/javascript&quot;>
                var attachUploa ...
对,如你所见,这个文件里有两个upload实例,用于不同的地方。我替换的那个是用于日志编辑里的图片上传的,另一个实例是用于其它地方的(文章还是相册的我记不清了,但可以肯定在日志的图片上传部分没用到它。你可以测试下把它也删掉,不影响日志里的图片上传)。

我的改动仅是示范如何在日志编辑里替换掉swfupload,或者说经过这个替换后,在日志编辑的图片上传中就没用到swfupload,而是用了plupload。我没想提供在Discuz代码里全盘替换swfupload的修改(不过我觉得其它用到swfupload的地方的修改是类似的)。

即便就是这个日志编辑部分的修改也是不完整的,也许没有把每个event handler都map到原来的处理代码上去只map了几个我在界面上看得出效果的,error code也没有全部map只map了两个600和601。我只是示范一下处理方式,而不是提供完整的解法。要完善的话,手法是类似的,但需要测试所有情形。我不是办网站的,所以也没什么兴趣来完善它了。
回复 ladyff 2016-4-3 07:39 PM
天香公主: 我把修改后的 editor_image_munu.htm 上传上来了 http://www.bian-wang.com/upload/txgz_editor_image_menu.zip,要不你试试看?
另外请确认你试的是编辑日志里 ...
研究了一下你的代码,有几个疑问。
1.原版的调用swfupload是在一个script中,定义了2个上传部分
        <script type=&quot;text/javascript&quot;>
                var attachUpload = new SWFUpload({
...
                var upload = new SWFUpload({
..
</script>

而你提供的代码,是直接在这段script中把                var upload = new SWFUpload 屏蔽掉,然后关闭script。
然后重新引入plupload的js,同时又使用一个新的script标签来定义var uploader = new plupload.Uploader({。

从严谨的角度,是不是直接用uploader = new plupload.Uploader({在原script中替换掉比较好?


另外一个问题,似乎discuz对attach和Img的上传是用不同的方法来实现。在修改时是不是应该把                var attachUpload = new SWFUpload({也修改掉?这样就可以完全抛弃swfuploader了
回复 ladyff 2016-4-3 07:24 PM
天香公主: 我把修改后的 editor_image_munu.htm 上传上来了 http://www.bian-wang.com/upload/txgz_editor_image_menu.zip,要不你试试看?
另外请确认你试的是编辑日志里 ...
en.昨天回帖完就发现了。你修改的是日志上传。我测试的是论坛里的上传。修改论坛的上传调用需要修改下面3个文件

default\forum\forumdisplay_fastpost.htm
default\forum\post.htm
default\forum\viewthread_fastpost.htm

PS:对比了下代码,发现似乎discuz对日志部分的上传代码,没有判断上传文件大小和一天上传总量的判断,而在论坛的上传部分有。个人感觉应该也加上大小判断

                <!--{if $swfconfig['maxsizeperday']}-->
                                        maxSizePerDay: $swfconfig['maxsizeperday'],
                                        <!--{/if}-->
                                        <!--{if $swfconfig['maxattachnum']}-->
                                        maxAttachNum: $swfconfig['maxattachnum'],
                                        <!--{/if}-->
                                        <!--{if $swfconfig['filtertype']}-->
                                        filterType: $swfconfig['filtertype'],
                                        <!--{/if}-->
                                        singleUpload: $('{$editorid}_btn_upload')
回复 天香公主 2016-4-3 11:17 AM
ladyff: 感谢更新。
似乎不能只修改editor_image_menu.htm。
我只修改了这个文件,似乎上传还是调用的swfuploader
我把修改后的 editor_image_munu.htm 上传上来了 http://www.bian-wang.com/upload/txgz_editor_image_menu.zip,要不你试试看?
另外请确认你试的是编辑日志里的上传图片,如我的图示 http://www.bian-wang.com/discuz/data/attachment/album/201604/03/111520pt52rhrrvyhna6oo.jpg
回复 天香公主 2016-4-3 09:57 AM
ladyff: 感谢更新。
似乎不能只修改editor_image_menu.htm。
我只修改了这个文件,似乎上传还是调用的swfuploader
不用谢。怎么会呢?你删掉了
var upload = new SWFUpload({ ...
吗?是在日志里测试的吗?
回复 ladyff 2016-4-3 09:48 AM
天香公主: 谢谢阅读。我估计是类似的吧。不过我熟悉的主要是与博客和微博有关的功能和代码,对论坛没有试过。如果你是程序员的话,可以去试试,遇到问题我们再讨论。 ...
感谢更新。
似乎不能只修改editor_image_menu.htm。
我只修改了这个文件,似乎上传还是调用的swfuploader
回复 天香公主 2015-4-22 06:52 AM
bugx: 论坛的上传可以替换不
谢谢阅读。我估计是类似的吧。不过我熟悉的主要是与博客和微博有关的功能和代码,对论坛没有试过。如果你是程序员的话,可以去试试,遇到问题我们再讨论。
回复 bugx 2015-4-22 01:05 AM
论坛的上传可以替换不
12下一页

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2018-1-19 01:01 PM , Processed in 0.058247 second(s), 11 queries. ,ApcOn

返回顶部