uploadimg.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. <!-- <div class="cl pd-5 bg-1 bk-gray">
  2. <a href="{:url('/file_manager/selectpicture')}" class="btn btn-default radius sethumb">
  3. <i class="Hui-iconfont">&#xe600;</i> 站内选择 </a>&nbsp;&nbsp;
  4. <a href="javascript:void(0);" class="btn btn-primary radius sethumb">
  5. <i class="Hui-iconfont">&#xe600;</i> 本地上传 </a>&nbsp;&nbsp;
  6. <a href="{:url('/file_manager/onlinepicture')}" class="btn btn-default radius sethumb">
  7. <i class="Hui-iconfont">&#xe600;</i> 网络图片 </a>&nbsp;&nbsp;
  8. </div> -->
  9. <!-- 本地上传 -->
  10. <style>
  11. #online {
  12. width: 100%;
  13. height: 224px;
  14. padding: 10px 0 0 0;
  15. }
  16. #online #imageList {
  17. width: 100%;
  18. height: 100%;
  19. overflow-x: hidden;
  20. overflow-y: auto;
  21. position: relative;
  22. margin-left: 20px;
  23. }
  24. #online ul {
  25. display: block;
  26. list-style: none;
  27. margin: 0;
  28. padding: 0;
  29. }
  30. #online li {
  31. float: left;
  32. display: block;
  33. list-style: none;
  34. padding: 0;
  35. width: 113px;
  36. height: 113px;
  37. margin: 0 0 9px 9px;
  38. background-color: #eee;
  39. overflow: hidden;
  40. cursor: pointer;
  41. position: relative;
  42. }
  43. #online li img {
  44. cursor: pointer;
  45. }
  46. #online li .icon {
  47. cursor: pointer;
  48. width: 113px;
  49. height: 113px;
  50. position: absolute;
  51. top: 0;
  52. left: 0;
  53. z-index: 2;
  54. border: 0;
  55. background-repeat: no-repeat;
  56. }
  57. #online li .icon:hover {
  58. width: 107px;
  59. height: 107px;
  60. border: 3px solid #1094fa;
  61. }
  62. #online li.selected .icon {
  63. background-image: url(/static/images/success.png);
  64. background-image: url(images/success.gif)\9;
  65. background-position: 75px 75px;
  66. }
  67. #online li.clearFloat {
  68. float: none;
  69. clear: both;
  70. display: block;
  71. width: 0;
  72. height: 0;
  73. margin: 0;
  74. padding: 0;
  75. }
  76. </style>
  77. <div id="tab-img" class="HuiTab">
  78. <div class="tabBar clearfix">
  79. <span>本地上传</span>
  80. <span>网络文件上传</span>
  81. <a onclick="onlinepicture(1)"><span>服务器图片选择</span></a>
  82. <input type="hidden" name="layer" id="layer" value="{$layer}">
  83. </div>
  84. <div class="tabCon">
  85. <div class="step1 active" style="margin-left:30px;">
  86. <form id="form-uploadimg" method="post" action="" enctype="multipart/form-data">
  87. <div class="row cl" style="margin-top:20px;">
  88. <label class="form-label col-xs-2 col-sm-2"><span class="c-red">*</span>图片要求: </label>
  89. <div class="formControls col-xs-8 col-sm-8">
  90. 格式 jpg,png,gif,jpeg,webp; 大小不超过4M.
  91. </div>
  92. <div class="col-3"> </div>
  93. </div>
  94. <div class="row cl" style="margin-top:20px;">
  95. <label class="form-label col-xs-2 col-sm-2">
  96. <span class="c-red">*</span>本地上传:</label>
  97. <div class="formControls col-xs-8 col-sm-8">
  98. <input type="file" class="input-text" name="upload_file" id="upload_file">
  99. </div>
  100. <div class="col-3"> </div>
  101. </div>
  102. <div class="row cl" style="margin-top:20px;">
  103. <input type="hidden" name="img_id" value={$img_id}>
  104. <input type="hidden" name="id" value={$id}>
  105. <input type="hidden" name="cjid" value={$cjid}>
  106. <div class="formControls col-sm-8">
  107. <div class="skin-minimal">
  108. <div class="check-box">
  109. <input type="checkbox" name="thumb" value="true" {$thumb ? 'checked' : "" }>
  110. <label for="thumb-1">缩略图</label>
  111. <input type="text" class="input-text" name="width" value={$width}
  112. style="width: 80px;">缩略图宽度
  113. <input type="text" class="input-text" name="height" value={$height}
  114. style="width: 80px;">缩略图高度
  115. </div>
  116. <div class="check-box">
  117. <input type="checkbox" name="original" value="true" {$original ? 'checked'
  118. : "" }>
  119. <label for="overwrite">保留原图</label>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <div class="row cl" style="margin-top:30px;margin-left:30px;">
  125. <div class="col-xs-6 col-sm-5 col-xs-offset-2 col-sm-offset-2">
  126. <input class="btn btn-primary radius" type="button" value="&nbsp;确&nbsp;定&nbsp;"
  127. onCLick="uploadLocalImg();">
  128. <input class="btn btn-default radius" type="button" value="&nbsp;取&nbsp;消&nbsp;"
  129. onClick="layer_close();">
  130. </div>
  131. </div>
  132. </form>
  133. </div>
  134. <!-- 本地上传end -->
  135. </div>
  136. <!-- 网络图片 -->
  137. <div class="tabCon">
  138. <form id="form-uploadurlimg" method="post" action="" enctype="multipart/form-data">
  139. <div class="row cl" style="margin-top:20px;">
  140. <label class="form-label col-xs-2 col-sm-2"><span class="c-red">*</span>图片要求: </label>
  141. <div class="formControls col-xs-8 col-sm-8">
  142. 格式 jpg,png,gif,jpeg,webp; 大小不超过4M.
  143. </div>
  144. <div class="col-3"> </div>
  145. </div>
  146. <div class="row cl" style="margin-top:20px;">
  147. <label class="form-label col-xs-2 col-sm-2">
  148. <span class="c-red">*</span>图片地址:</label>
  149. <div class="formControls col-xs-8 col-sm-8">
  150. <input type="text" class="input-text" name="url_file" id="url_file">
  151. </div>
  152. <div class="col-3"> </div>
  153. </div>
  154. <div class="row cl" style="margin-top:20px;">
  155. <input type="hidden" name="img_id" value={$img_id}>
  156. <div class="formControls col-xs-12 col-sm-8">
  157. <div class="skin-minimal">
  158. <div class="check-box">
  159. <input type="checkbox" name="thumb" value="{$thumb}" {$thumb ? 'checked' : "" }>
  160. <label for="thumb-1">缩略图</label>
  161. <input type="text" class="input-text" name="width" value={$width} style="width: 80px;">缩略图宽度
  162. <input type="text" class="input-text" name="height" value={$height}
  163. style="width: 80px;">缩略图高度
  164. </div>
  165. <div class="check-box">
  166. <input type="checkbox" name="original" value="{$original}" {$original ? 'checked' : "" }>
  167. <label for="overwrite">保留原图</label>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <div class="row cl" style="margin-top:30px;margin-left:30px;">
  173. <div class="col-xs-6 col-sm-5 col-xs-offset-2 col-sm-offset-2">
  174. <input class="btn btn-primary radius" type="button" value="&nbsp;确&nbsp;定&nbsp;"
  175. onCLick="uploadUrlImg()">
  176. <input class="btn btn-default radius" type="button" value="&nbsp;取&nbsp;消&nbsp;"
  177. onClick="layer_close();">
  178. </div>
  179. </div>
  180. </form>
  181. </div>
  182. <!-- 在线图片 -->
  183. <div class="tabCon">
  184. </div>
  185. </div>
  186. <!--请在下方写此页面业务相关的脚本-->
  187. <script type="text/javascript">
  188. jQuery.Huitab = function (tabBar, tabCon, class_name, tabEvent, i) {
  189. var $tab_menu = $(tabBar);
  190. // 初始化操作
  191. $tab_menu.removeClass(class_name);
  192. $(tabBar).eq(i).addClass(class_name);
  193. $(tabCon).hide();
  194. $(tabCon).eq(i).show();
  195. $tab_menu.bind(tabEvent, function () {
  196. $tab_menu.removeClass(class_name);
  197. $(this).addClass(class_name);
  198. var index = $tab_menu.index(this);
  199. $(tabCon).hide();
  200. $(tabCon).eq(index).show()
  201. })
  202. }
  203. $(function () {
  204. $.Huitab("#tab-img .tabBar span", "#tab-img .tabCon", "current", "click", "0");
  205. $(document).on("click", "#online li", function(){
  206. $("#online li").removeClass('selected');
  207. $(this).addClass('selected');
  208. img = $(this).children('img').attr('_src');
  209. $("#online_file").val(img);
  210. })
  211. });
  212. //step1本地上传图片
  213. function uploadLocalImg() {
  214. var layer = $("#layer").val();
  215. if ($("#upload_file").val() == '') {
  216. layer.msg("请选择要上传的文件", {
  217. icon: 6,
  218. time: 1000
  219. });
  220. return false;
  221. } else {
  222. var formData = new FormData($("#form-uploadimg")[0]);
  223. $.ajax({
  224. url: '{:url("file_manager/uploadLocalImg")}',
  225. type: 'POST',
  226. async: true,
  227. cache: false,
  228. data: formData,
  229. processData: false,
  230. contentType: false,
  231. dataType: "json",
  232. beforeSend: function () {
  233. // loadIndex = layer.load();
  234. },
  235. success: function (res) {
  236. if (res.code == 0) {
  237. // layer.close(loadIndex);
  238. if (layer == true) {
  239. var img = res.thumb ? res.thumb : res.picname;
  240. window.parent.$("#" + res.img_id).val(img);
  241. window.parent.$("#view-" + res.img_id).attr('src', img);
  242. layer_close();
  243. } else {
  244. layer.msg('上传成功', {
  245. icon: 1,
  246. time: 1000
  247. },()=>{
  248. window.location.reload();
  249. });
  250. }
  251. } else {
  252. // layer.close(loadIndex);
  253. layer.msg(res.msg, {
  254. icon: 5,
  255. time: 1000
  256. });
  257. return false;
  258. }
  259. }
  260. });
  261. }
  262. }
  263. // 网络图片
  264. function uploadUrlImg() {
  265. var layer = $("#layer").val();
  266. if ($("#url_file").val() == '') {
  267. layer.msg("文件地址不可以为空", {
  268. icon: 6,
  269. time: 1000
  270. });
  271. return false;
  272. } else {
  273. var formData = new FormData($("#form-uploadurlimg")[0]);
  274. $.ajax({
  275. url: '{:url("file_manager/uploadUrlImg")}',
  276. type: 'POST',
  277. async: true,
  278. cache: false,
  279. data: formData,
  280. processData: false,
  281. contentType: false,
  282. dataType: "json",
  283. beforeSend: function () {
  284. // loadIndex = layer.load();
  285. },
  286. success: function (res) {
  287. if (res.code == 0) {
  288. console.log(layer);
  289. // layer.close(loadIndex);
  290. if (layer == true) {
  291. var img = res.picname;
  292. window.parent.$("#" + res.img_id).val(img);
  293. if (res.thumbname) {
  294. img = res.thumbname;
  295. window.parent.$("#thumb").val(img);
  296. }
  297. window.parent.$("#view-" + res.img_id).attr('src', img);
  298. layer_close();
  299. } else {
  300. window.location.reload();
  301. }
  302. } else {
  303. // layer.close(loadIndex);
  304. layer.msg(res.msg, {
  305. icon: 5,
  306. time: 1000
  307. });
  308. return false;
  309. }
  310. }
  311. });
  312. }
  313. }
  314. function onlinepicture(page) {
  315. var data = { "page": page };
  316. $.ajax({
  317. url: '{:url("file_manager/onlineimg")}',
  318. type: 'GET',
  319. async: true,
  320. cache: false,
  321. data: 'page=' + page,
  322. processData: false,
  323. contentType: false,
  324. dataType: "json",
  325. success: function (res) {
  326. if (res.code == 0) {
  327. html_str = "";
  328. res.list.forEach(element => {
  329. html_str += '<li><img width="170" height="113" src="' + element.url + '?noCache=' + element.mtime + '"';
  330. html_str += '_src="' + element.url + '">';
  331. html_str += '<span class="icon"></span></li>';
  332. });
  333. $('ul.list').prepend(html_str);
  334. }
  335. }
  336. });
  337. }
  338. function uploadOnlineImg() {
  339. if ($("#online_file").val() == '') {
  340. layer.msg("文件地址不可以为空", {
  341. icon: 6,
  342. time: 1000
  343. });
  344. return false;
  345. } else {
  346. var formData = new FormData($("#form-uploadonlineimg")[0]);
  347. $.ajax({
  348. url: '{:url("file_manager/uploadonlineimg")}',
  349. type: 'POST',
  350. async: true,
  351. cache: false,
  352. data: formData,
  353. processData: false,
  354. contentType: false,
  355. dataType: "json",
  356. beforeSend: function () {
  357. // loadIndex = layer.load();
  358. },
  359. success: function (res) {
  360. if (res.code == 0) {
  361. // console.log(res);
  362. // layer.close(loadIndex);
  363. var img = res.picname;
  364. window.parent.$("#" + res.img_id).val(img);
  365. if (res.thumbname) {
  366. img = res.thumbname;
  367. window.parent.$("#thumb").val(img);
  368. }
  369. window.parent.$("#view-" + res.img_id).attr('src', img);
  370. layer_close();
  371. } else {
  372. // layer.close(loadIndex);
  373. layer.msg(res.msg, {
  374. icon: 5,
  375. time: 1000
  376. });
  377. return false;
  378. }
  379. }
  380. });
  381. }
  382. }
  383. </script>
  384. <!--请在上方写此页面业务相关的脚本-->