让微擎模块万能表单支持普通浏览器上传文件

      发布在:后端技术      评论:0 条评论
<p><img src="http://img.80zx.com/ueditor/image/202003/1585462990827266.png" title="image" alt="image"/></p><p>最近采用的微擎模块万能表单无法在手机端普通浏览器上传图片,查看代码发现只考虑了微信下的上传,于是对upimg函数添加h5浏览器的上传方法。</p><p>具体实现方式如下:</p><pre style="background-color:#262e37;color:#ffffff;font-family:&#39;Consolas&#39;;font-size:11.3pt;">&lt;<span style="color:#c32867;font-weight:bold;">script </span><span style="color:#a6e22e;">type</span><span style="color:#e6db74;font-weight:bold;">=&quot;text/javascript&quot; </span><span style="color:#a6e22e;">src</span><span style="color:#e6db74;font-weight:bold;">=&quot;{$_W[&#39;siteroot&#39;]}app/resource/js/lib/jquery-1.11.1.min.js&quot;</span>&gt;&lt;/<span style="color:#c32867;font-weight:bold;">script</span>&gt;<br/> &lt;<span style="color:#c32867;font-weight:bold;">script </span><span style="color:#a6e22e;">type</span><span style="color:#e6db74;font-weight:bold;">=&quot;application/javascript&quot;</span>&gt;<br/> <span style="color:#660e7a;font-weight:bold;">jQuery</span>.<span style="color:#4ac60a;">noConflict</span>();<br/> &lt;/<span style="color:#c32867;font-weight:bold;">script</span>&gt;<br/> &lt;!--引入jUploader上传控件--&gt;<br/> &lt;script type=&quot;text/javascript&quot; src=&quot;{MODULE_URL}template/weui/js/jUploader.js&quot;&gt;&lt;/script&gt;<br/></pre><pre style="background-color:#262e37;color:#ffffff;font-family:&#39;Consolas&#39;;font-size:11.3pt;"> <span style="color:#660e7a;font-weight:bold;">jQuery</span>.<span style="color:#4ac60a;">jUploader</span>.<span style="color:#4ac60a;">setDefaults</span>({<br/> <span style="color:#660e7a;font-weight:bold;">cancelable</span><span style="color:#f92672;">: false</span>, <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">可取消上传</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#660e7a;font-weight:bold;">allowedExtensions</span><span style="color:#f92672;">: </span>[<span style="color:#e6db74;">&#39;jpg&#39;</span>, <span style="color:#e6db74;">&#39;png&#39;</span>, <span style="color:#e6db74;">&#39;gif&#39;</span>,<span style="color:#e6db74;">&#39;jpeg&#39;</span>], <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">只允许上传图片</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#660e7a;font-weight:bold;">messages</span><span style="color:#f92672;">: </span>{<br/> <span style="color:#660e7a;font-weight:bold;">upload</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&#39;</span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">上传</span><span style="color:#e6db74;">&#39;</span>,<br/> <span style="color:#660e7a;font-weight:bold;">cancel</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&#39;</span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">取消</span><span style="color:#e6db74;">&#39;</span>,<br/> <span style="color:#660e7a;font-weight:bold;">emptyFile</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&quot;{file} </span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">为空,请选择一个文件</span><span style="color:#e6db74;">.&quot;</span>,<br/> <span style="color:#660e7a;font-weight:bold;">invalidExtension</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&quot;{file} </span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">后缀名不合法</span><span style="color:#e6db74;">. </span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">只有</span><span style="color:#e6db74;"> {extensions} </span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">是允许的</span><span style="color:#e6db74;">.&quot;</span>,<br/> <span style="color:#660e7a;font-weight:bold;">onLeave</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&quot;</span><span style="color:#e6db74;font-family:&#39;宋体&#39;;">文件正在上传,如果你现在离开,上传将会被取消。</span><span style="color:#e6db74;">&quot;<br/></span><span style="color:#e6db74;"> &nbsp; &nbsp; &nbsp; &nbsp;</span>}<br/> });<br/><br/> <span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">判断是否微信登陆</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp;</span><span style="color:#f92672;">function </span><span style="font-style:italic;">isWeiXin</span>() {<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">ua </span><span style="color:#f92672;">= </span><span style="color:#660e7a;font-weight:bold;font-style:italic;">window</span>.<span style="color:#660e7a;font-weight:bold;">navigator</span>.<span style="color:#660e7a;font-weight:bold;">userAgent</span>.<span style="color:#4ac60a;">toLowerCase</span>();<br/> <span style="color:#f92672;">if </span>(<span style="color:#64a2a2;">ua</span>.<span style="color:#4ac60a;">match</span>(<span style="color:#e6db74;">/MicroMessenger/i</span>) <span style="color:#f92672;">== </span><span style="color:#e6db74;">&#39;micromessenger&#39;</span>) {<br/> <span style="color:#f92672;">return true</span>;<br/> } <span style="color:#f92672;">else </span>{<br/> <span style="color:#f92672;">return false</span>;<br/> }<br/> }<br/><br/><br/><span style="color:#f92672;">function </span><span style="font-style:italic;">upimg</span>(<span style="color:#fd971f;font-style:italic;">obj</span>,<span style="color:#fd971f;font-style:italic;">id</span>){<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">images </span><span style="color:#f92672;">= </span>{<br/> <span style="color:#660e7a;font-weight:bold;">localId</span><span style="color:#f92672;">: </span>[],<br/> <span style="color:#660e7a;font-weight:bold;">serverId</span><span style="color:#f92672;">: </span>[]<br/> };<br/> <span style="color:#f92672;">if </span>(<span style="font-style:italic;">isWeiXin</span>()) {<br/> <span style="color:#5b7773;background-color:#191f26;">// alert(&quot; </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">是来自微信内置浏览器</span><span style="color:#5b7773;background-color:#191f26;">&quot;)</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; &nbsp; &nbsp; &nbsp;</span>wx.chooseImage({<br/> <span style="color:#660e7a;font-weight:bold;">count</span><span style="color:#f92672;">: </span><span style="color:#ae81ff;">1</span>,<br/> <span style="color:#660e7a;font-weight:bold;">sourceType</span><span style="color:#f92672;">: </span>[<span style="color:#e6db74;">&#39;album&#39;</span>, <span style="color:#e6db74;">&#39;camera&#39;</span>],<br/> <span style="color:#4ac60a;">success</span><span style="color:#f92672;">:function</span>(<span style="color:#fd971f;font-style:italic;">res</span>){<br/> <span style="color:#64a2a2;">images</span>.<span style="color:#660e7a;font-weight:bold;">localId </span><span style="color:#f92672;">= </span><span style="color:#fd971f;font-style:italic;">res</span>.localIds;<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">i </span><span style="color:#f92672;">= </span><span style="color:#ae81ff;">0</span>, <span style="color:#64a2a2;">length </span><span style="color:#f92672;">= </span><span style="color:#64a2a2;">images</span>.<span style="color:#660e7a;font-weight:bold;">localId</span>.<span style="color:#660e7a;font-weight:bold;">length</span>;<br/> <span style="color:#f92672;">var </span><span style="font-style:italic;">wxUpload </span><span style="color:#f92672;">= function</span>() {<br/> wx.uploadImage({<br/> <span style="color:#660e7a;font-weight:bold;">localId</span><span style="color:#f92672;">: </span><span style="color:#64a2a2;">images</span>.<span style="color:#660e7a;font-weight:bold;">localId</span>[<span style="color:#64a2a2;">i</span>],<br/> <span style="color:#660e7a;font-weight:bold;">isShowProgressTips</span><span style="color:#f92672;">: </span><span style="color:#ae81ff;">1</span>,<br/> <span style="color:#4ac60a;">success</span><span style="color:#f92672;">: function </span>(<span style="color:#fd971f;font-style:italic;">res</span>) {<br/> <span style="color:#64a2a2;">i</span><span style="color:#f92672;">++</span>;<br/> <span style="color:#64a2a2;">images</span>.<span style="color:#660e7a;font-weight:bold;">serverId</span>.<span style="color:#4ac60a;">push</span>(<span style="color:#fd971f;font-style:italic;">res</span>.<span style="color:#660e7a;font-weight:bold;">serverId</span>);<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">url </span><span style="color:#f92672;">= </span><span style="color:#e6db74;">&quot;{php echo $this-&gt;createMobileUrl(&#39;uploads&#39;,array(&#39;type&#39;=&gt;&#39;image&#39;));}&amp;serverId=&quot; </span><span style="color:#f92672;">+ </span><span style="color:#fd971f;font-style:italic;">res</span>.<span style="color:#660e7a;font-weight:bold;">serverId </span><span style="color:#f92672;">+ </span><span style="color:#e6db74;">&quot;&amp;localId=&quot; </span><span style="color:#f92672;">+ </span><span style="color:#64a2a2;">i</span>;<br/> <span style="color:#660e7a;font-weight:bold;">$</span>.<span style="color:#4ac60a;">post</span>(<span style="color:#64a2a2;">url</span>, <span style="color:#f92672;">function</span>(<span style="color:#fd971f;font-style:italic;">dat</span>){<br/> <span style="color:#f92672;">var </span><span style="color:#64a2a2;">dat </span><span style="color:#f92672;">= </span><span style="font-style:italic;">eval</span>(<span style="color:#e6db74;">&quot;(&quot;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">dat</span><span style="color:#f92672;">+</span><span style="color:#e6db74;">&quot;)&quot;</span>);<br/> <span style="color:#f92672;">if </span>(<span style="color:#64a2a2;">dat</span>.<span style="color:#660e7a;font-weight:bold;">status </span><span style="color:#f92672;">== </span><span style="color:#e6db74;">&#39;success&#39;</span>) {<br/> <span style="color:#660e7a;font-weight:bold;">$</span>.<span style="color:#4ac60a;">toast</span>(<span style="color:#64a2a2;">dat</span>.<span style="color:#660e7a;font-weight:bold;">message</span>, <span style="color:#e6db74;">&quot;success&quot;</span>);<br/> <span style="color:#660e7a;font-weight:bold;">$</span>(<span style="color:#e6db74;">&#39;input[name=&quot;&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">obj</span>.<span style="color:#4ac60a;">getAttribute</span>(<span style="color:#e6db74;">&quot;data&quot;</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&#39;&quot;]&#39;</span>).<span style="color:#4ac60a;">val</span>(<span style="font-style:italic;">tomedia</span>(<span style="color:#64a2a2;">dat</span>.<span style="color:#660e7a;font-weight:bold;">path</span>));<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">&#39;show&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">id</span>).<span style="color:#660e7a;font-weight:bold;">src </span><span style="color:#f92672;">= </span><span style="font-style:italic;">tomedia</span>(<span style="color:#64a2a2;">dat</span>.<span style="color:#660e7a;font-weight:bold;">path</span>);<br/> }<span style="color:#f92672;">else</span>{<br/> <span style="color:#660e7a;font-weight:bold;">$</span>.<span style="color:#4ac60a;">toast</span>(<span style="color:#64a2a2;">dat</span>.<span style="color:#660e7a;font-weight:bold;">message</span>, <span style="color:#e6db74;">&quot;cancel&quot;</span>);<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">&#39;show&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">id</span>).<span style="color:#660e7a;font-weight:bold;">src </span><span style="color:#f92672;">= </span><span style="color:#e6db74;">&quot;&quot;</span>;<br/> }<br/> });<br/> <span style="color:#f92672;">if</span>(<span style="color:#64a2a2;">i </span><span style="color:#f92672;">&lt; </span><span style="color:#64a2a2;">length</span>){<br/> <span style="font-style:italic;">wxUpload</span>();<br/> }<br/> },<br/> <span style="color:#4ac60a;">fail</span><span style="color:#f92672;">: function </span>(<span style="color:#fd971f;font-style:italic;">res</span>) {<br/> <span style="font-style:italic;">alert</span>(<span style="color:#660e7a;font-weight:bold;font-style:italic;">JSON</span>.<span style="color:#4ac60a;">stringify</span>(<span style="color:#fd971f;font-style:italic;">res</span>));<br/> }<br/> });<br/> };<br/> <span style="font-style:italic;">wxUpload</span>();<br/> }<br/> });<br/> } <span style="color:#f92672;">else </span>{<br/> <span style="color:#5b7773;background-color:#191f26;">// alert(&quot;</span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">不是来自微信内置浏览器</span><span style="color:#5b7773;background-color:#191f26;">&quot;)</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#660e7a;font-weight:bold;font-style:italic;">console</span>.<span style="color:#4ac60a;">log</span>(<span style="color:#660e7a;font-weight:bold;">jQuery</span>(<span style="color:#fd971f;font-style:italic;">obj</span>).<span style="color:#4ac60a;">data</span>(<span style="color:#e6db74;">&#39;blzx&#39;</span>)<span style="color:#f92672;">===undefined</span>);<br/> <span style="color:#f92672;">if</span>(<span style="color:#660e7a;font-weight:bold;">jQuery</span>(<span style="color:#fd971f;font-style:italic;">obj</span>).<span style="color:#4ac60a;">data</span>(<span style="color:#e6db74;">&#39;blzx&#39;</span>)<span style="color:#f92672;">===undefined</span>){<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">console</span>.<span style="color:#4ac60a;">log</span>(<span style="color:#e6db74;">&#39;jQuery.jUploader&#39;</span>);<br/> <span style="color:#660e7a;font-weight:bold;">jQuery</span>.<span style="color:#4ac60a;">jUploader</span>({<br/> <span style="color:#660e7a;font-weight:bold;">button</span><span style="color:#f92672;">: </span><span style="color:#660e7a;font-weight:bold;">jQuery</span>(<span style="color:#fd971f;font-style:italic;">obj</span>), <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">这里设置按钮</span><span style="color:#5b7773;background-color:#191f26;">id</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#660e7a;font-weight:bold;">action</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">&quot;{php echo $this-&gt;createMobileUrl(&#39;pcupload&#39;)}&quot;</span>, <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">这里设置上传处理接口</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#4ac60a;">onUpload</span><span style="color:#f92672;">: function </span>(<span style="color:#fd971f;font-style:italic;">fileName</span>) {<br/> },<br/> <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:&#39;宋体&#39;;">上传完成事件</span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"><br/></span><span style="color:#5b7773;font-family:&#39;宋体&#39;;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color:#4ac60a;">onComplete</span><span style="color:#f92672;">: function </span>(<span style="color:#fd971f;font-style:italic;">fileName</span>, <span style="color:#fd971f;font-style:italic;">response</span>) {<br/> <span style="color:#f92672;">if </span>(<span style="color:#fd971f;font-style:italic;">response</span>.<span style="color:#660e7a;font-weight:bold;">status </span><span style="color:#f92672;">== </span><span style="color:#e6db74;">&#39;success&#39;</span>) {<br/> <span style="color:#660e7a;font-weight:bold;">$</span>.<span style="color:#4ac60a;">toast</span>(<span style="color:#fd971f;font-style:italic;">response</span>.<span style="color:#660e7a;font-weight:bold;">message</span>, <span style="color:#e6db74;">&quot;success&quot;</span>);<br/> <span style="color:#660e7a;font-weight:bold;">$</span>(<span style="color:#e6db74;">&#39;input[name=&quot;&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">obj</span>.<span style="color:#4ac60a;">getAttribute</span>(<span style="color:#e6db74;">&quot;data&quot;</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">&#39;&quot;]&#39;</span>).<span style="color:#4ac60a;">val</span>(<span style="font-style:italic;">tomedia</span>(<span style="color:#fd971f;font-style:italic;">response</span>.<span style="color:#660e7a;font-weight:bold;">path</span>));<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">&#39;show&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">id</span>).<span style="color:#660e7a;font-weight:bold;">src </span><span style="color:#f92672;">= </span><span style="font-style:italic;">tomedia</span>(<span style="color:#fd971f;font-style:italic;">response</span>.<span style="color:#660e7a;font-weight:bold;">path</span>);<br/> }<span style="color:#f92672;">else</span>{<br/> <span style="color:#660e7a;font-weight:bold;">$</span>.<span style="color:#4ac60a;">toast</span>(<span style="color:#fd971f;font-style:italic;">response</span>.<span style="color:#660e7a;font-weight:bold;">message</span>, <span style="color:#e6db74;">&quot;cancel&quot;</span>);<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">&#39;show&#39;</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">id</span>).<span style="color:#660e7a;font-weight:bold;">src </span><span style="color:#f92672;">= </span><span style="color:#e6db74;">&quot;&quot;</span>;<br/> }<br/> },<br/> });<br/> <span style="color:#660e7a;font-weight:bold;">jQuery</span>(<span style="color:#fd971f;font-style:italic;">obj</span>).<span style="color:#4ac60a;">data</span>(<span style="color:#e6db74;">&#39;blzx&#39;</span>,<span style="color:#ae81ff;">1</span>);<br/> <span style="color:#660e7a;font-weight:bold;">jQuery</span>(<span style="color:#fd971f;font-style:italic;">obj</span>).<span style="color:#660e7a;font-weight:bold;">children</span>(<span style="color:#e6db74;">&quot;input&quot;</span>).<span style="color:#4ac60a;">trigger</span>(<span style="color:#e6db74;">&quot;click&quot;</span>);<br/> }<br/><br/><br/> }<br/><br/>}</pre><p>后台接收方式:</p><p>
游客,如果您要查看本帖隐藏内容需支付¥0.50元立即购买
</p>
相关文章

要通过伪静态规则禁止上传目录 uploadfile 下的 PHP 脚本执行权限,请根据你的服务器类型(Apache 或 Nginx 或 **IIS选择以下配置方法:一、Apache 服务器(使用 .htaccess 文件)在 uploadfile 目录下创建或修改 .htaccess 文件。添加以下规则(根据 Apache 版本选择配置):Apache 2.4+ 语法:

接朋友需求,需要实现帝国cms7.5发布文章或编辑文章的时候选择图片改成直接上传图片实现方法,基于原来是直接弹窗的,找到文件e/admin/AddNews.php在前增加如下代码

如果需要使用上传功能,必须按照fileinfo扩展阿里虚拟主机的设置php函数chmod设置选择启动,参考如下

require(['clipboard'], function(Clipboard){ var clipboardRewrite = new Clipboard(".copy", { text: function(v) { return $(v).attr('data-clipboard-text'); }

PbootCMS模板上传后导致前台页面错乱的原因,并提供解决这个问题的一些技术方法。我们将探讨如何避免模板上传引起的布局问题,保证前台页面的正确显示。

#change_cover input{ font-size: 0;//解决按钮展示手型 cursor: pointer;}/*解决无法点击问题*/#change_cover div:nth-...

热门推荐