<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:'Consolas';font-size:11.3pt;"><<span style="color:#c32867;font-weight:bold;">script </span><span style="color:#a6e22e;">type</span><span style="color:#e6db74;font-weight:bold;">="text/javascript" </span><span style="color:#a6e22e;">src</span><span style="color:#e6db74;font-weight:bold;">="{$_W['siteroot']}app/resource/js/lib/jquery-1.11.1.min.js"</span>></<span style="color:#c32867;font-weight:bold;">script</span>><br/> <<span style="color:#c32867;font-weight:bold;">script </span><span style="color:#a6e22e;">type</span><span style="color:#e6db74;font-weight:bold;">="application/javascript"</span>><br/> <span style="color:#660e7a;font-weight:bold;">jQuery</span>.<span style="color:#4ac60a;">noConflict</span>();<br/> </<span style="color:#c32867;font-weight:bold;">script</span>><br/> <!--引入jUploader上传控件--><br/> <script type="text/javascript" src="{MODULE_URL}template/weui/js/jUploader.js"></script><br/></pre><pre style="background-color:#262e37;color:#ffffff;font-family:'Consolas';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:'宋体';">可取消上传</span><span style="color:#5b7773;font-family:'宋体';"><br/></span><span style="color:#5b7773;font-family:'宋体';"> </span><span style="color:#660e7a;font-weight:bold;">allowedExtensions</span><span style="color:#f92672;">: </span>[<span style="color:#e6db74;">'jpg'</span>, <span style="color:#e6db74;">'png'</span>, <span style="color:#e6db74;">'gif'</span>,<span style="color:#e6db74;">'jpeg'</span>], <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:'宋体';">只允许上传图片</span><span style="color:#5b7773;font-family:'宋体';"><br/></span><span style="color:#5b7773;font-family:'宋体';"> </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;">'</span><span style="color:#e6db74;font-family:'宋体';">上传</span><span style="color:#e6db74;">'</span>,<br/> <span style="color:#660e7a;font-weight:bold;">cancel</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">'</span><span style="color:#e6db74;font-family:'宋体';">取消</span><span style="color:#e6db74;">'</span>,<br/> <span style="color:#660e7a;font-weight:bold;">emptyFile</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">"{file} </span><span style="color:#e6db74;font-family:'宋体';">为空,请选择一个文件</span><span style="color:#e6db74;">."</span>,<br/> <span style="color:#660e7a;font-weight:bold;">invalidExtension</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">"{file} </span><span style="color:#e6db74;font-family:'宋体';">后缀名不合法</span><span style="color:#e6db74;">. </span><span style="color:#e6db74;font-family:'宋体';">只有</span><span style="color:#e6db74;"> {extensions} </span><span style="color:#e6db74;font-family:'宋体';">是允许的</span><span style="color:#e6db74;">."</span>,<br/> <span style="color:#660e7a;font-weight:bold;">onLeave</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">"</span><span style="color:#e6db74;font-family:'宋体';">文件正在上传,如果你现在离开,上传将会被取消。</span><span style="color:#e6db74;">"<br/></span><span style="color:#e6db74;"> </span>}<br/> });<br/><br/> <span style="color:#5b7773;background-color:#191f26;">//</span><span style="color:#5b7773;background-color:#191f26;font-family:'宋体';">判断是否微信登陆</span><span style="color:#5b7773;font-family:'宋体';"><br/></span><span style="color:#5b7773;font-family:'宋体';"> </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;">'micromessenger'</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(" </span><span style="color:#5b7773;background-color:#191f26;font-family:'宋体';">是来自微信内置浏览器</span><span style="color:#5b7773;background-color:#191f26;">")</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> </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;">'album'</span>, <span style="color:#e6db74;">'camera'</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;">"{php echo $this->createMobileUrl('uploads',array('type'=>'image'));}&serverId=" </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;">"&localId=" </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;">"("</span><span style="color:#f92672;">+</span><span style="color:#fd971f;font-style:italic;">dat</span><span style="color:#f92672;">+</span><span style="color:#e6db74;">")"</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;">'success'</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;">"success"</span>);<br/> <span style="color:#660e7a;font-weight:bold;">$</span>(<span style="color:#e6db74;">'input[name="'</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;">"data"</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">'"]'</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;">'show'</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;">"cancel"</span>);<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">'show'</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;">""</span>;<br/> }<br/> });<br/> <span style="color:#f92672;">if</span>(<span style="color:#64a2a2;">i </span><span style="color:#f92672;">< </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("</span><span style="color:#5b7773;background-color:#191f26;font-family:'宋体';">不是来自微信内置浏览器</span><span style="color:#5b7773;background-color:#191f26;">")</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> </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;">'blzx'</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;">'blzx'</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;">'jQuery.jUploader'</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:'宋体';">这里设置按钮</span><span style="color:#5b7773;background-color:#191f26;">id</span><span style="color:#5b7773;"><br/></span><span style="color:#5b7773;"> </span><span style="color:#660e7a;font-weight:bold;">action</span><span style="color:#f92672;">: </span><span style="color:#e6db74;">"{php echo $this->createMobileUrl('pcupload')}"</span>, <span style="color:#5b7773;background-color:#191f26;">// </span><span style="color:#5b7773;background-color:#191f26;font-family:'宋体';">这里设置上传处理接口</span><span style="color:#5b7773;font-family:'宋体';"><br/></span><span style="color:#5b7773;font-family:'宋体';"> </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:'宋体';">上传完成事件</span><span style="color:#5b7773;font-family:'宋体';"><br/></span><span style="color:#5b7773;font-family:'宋体';"> </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;">'success'</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;">"success"</span>);<br/> <span style="color:#660e7a;font-weight:bold;">$</span>(<span style="color:#e6db74;">'input[name="'</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;">"data"</span>)<span style="color:#f92672;">+</span><span style="color:#e6db74;">'"]'</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;">'show'</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;">"cancel"</span>);<br/> <span style="color:#660e7a;font-weight:bold;font-style:italic;">document</span>.<span style="color:#4ac60a;">getElementById</span>(<span style="color:#e6db74;">'show'</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;">""</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;">'blzx'</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;">"input"</span>).<span style="color:#4ac60a;">trigger</span>(<span style="color:#e6db74;">"click"</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-...