系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络编程 > AJAX相关 > 详细页面

ThinkPHP5 通过ajax插入图片并实时显示(完整代码)

时间:2020-02-03来源:系统城作者:电脑系统城

单张图片上传

展示图:

完整代码:


 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>ajax上传图片练习</title>
  6. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  7. <style type="text/css">
  8. </style>
  9. </head>
  10. <body>
  11. <form id="form">
  12. <label for="exampleInputEmail1">身份证正面</label>
  13. <input type="file" id="drawing" name="drawing" onchange="picture(this);" />
  14. <!-- 上传图片的路径 --><input type="hidden" name="" id="front" value="" />
  15. <div id="result"></div>
  16. </form>
  17. </body>
  18. </html>
  19. <script>
  20. //正面身份证
  21. function picture() {
  22. var data = new FormData($('#form')[0]);
  23. /* new FormData 的意思
  24. * 获取我们for表单中的所有input的name和value为了更方便传值
  25. * https://segmentfault.com/a/1190000012327982?utm_source=tag-newest
  26. */
  27. console.log(data);
  28. $.ajax({
  29. url: "http://tp5-shopxo.likeball.top/index.php?s=/api/Mi/measurement",
  30. type: 'POST',
  31. data: data,
  32. dataType: 'JSON',
  33. cache: false,
  34. processData: false,
  35. contentType: false,
  36. success: function(data) {
  37. // console.log(data);
  38. if (data['whether']) {
  39. var result = '';
  40. var result1 = '';
  41. result += '<img src="' + 'http://tp5-shopxo.likeball.top/' + data['site'] + '" width="100">';
  42. result1 += 'http://tp5-shopxo.likeball.top/' + data['site'];
  43. $('#results').html(result);
  44. $('#fronts').val(result1);
  45. }
  46. },
  47. error: function(data) {
  48. alert('错误');
  49. }
  50. });
  51. }
  52. </script>

tp控制器代码


 
  1. public function measurement()
  2. {
  3. $response = array();
  4. //这是身份证正面
  5. if ( isset( $_FILES['drawing'] ) && $_FILES['drawing']['error'] == 0 ) {
  6. $drawing = request()->file('drawing');
  7. $picture = $drawing->validate( ['ext'=>'jpg,png,gif'] )->move( ROOT_PATH . 'static' . DS .'upload/mi/img' );
  8. }
  9. if ( isset( $picture ) ) {
  10. $filePaths = '/static' . DS . 'upload/mi/img/'. $picture->getSaveName();
  11. $response['whether'] = true;
  12. $response['site'] = $filePaths;
  13. echo json_encode($response);
  14. }
  15. // 正面结束
  16. }

多个上传

展示:

完整代码:


 
  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>文件上传</title>
  5. <style type="text/css">
  6. #front {
  7. width: 120px;
  8. height: 120px;
  9. background-color: #8A6DE9;
  10. }
  11. #frontage {
  12. width: 120px;
  13. height: 120px;
  14. background-color: #8A6DE9;
  15. }
  16. #banking {
  17. width: 120px;
  18. height: 120px;
  19. background-color: #8A6DE9;
  20. }
  21. #house {
  22. width: 120px;
  23. height: 120px;
  24. background-color: #8A6DE9;
  25. }
  26. </style>
  27. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  28. </head>
  29. <body>
  30. <form id="uploadForm">
  31. <!-- 1 -->
  32. <p>身份证正面:<input type="file" name="drawing" id="drawing" onchange="identity(this)"autocomplete="off" /></p>
  33. <input type="text" name="" id="fronts" value="" />
  34. <div id="front"></div>
  35. <!-- 1 -->
  36. <!-- 2 -->
  37. <p>身份证反面:<input type="file" name="reverse" id="reverse" onchange="card(this)"autocomplete="off" /></p>
  38. <input type="text" name="" id="frontages" value="" />
  39. <div id="frontage"></div>
  40. <!-- 2 -->
  41. <!-- 3 -->
  42. <p>银行卡正面: <input type="file" name="transaction" id="transaction"onchange="obverse(this)" autocomplete="off" /></p>
  43. <input type="text" name="" id="bankings" value="" />
  44. <div id="banking"></div>
  45. <!-- 3 -->
  46. <!-- 4 -->
  47. <p>银行卡反面: <input type="file" name="redlining" id="redlining" onchange="versa(this)"autocomplete="off" /></p>
  48. <input type="text" name="" id="houses" value="" />
  49. <div id="house"></div>
  50. <!-- 4 -->
  51. </form>
  52. </body>
  53. </html>
  54. <!-- 身份证正面 -->
  55. <script type="text/javascript">
  56. function identity() {
  57. var formData = new FormData();
  58. formData.append("drawing", $('#drawing')[0].files[0]);
  59. // console.log(formData);
  60. $.ajax({
  61. url: "http://tp5-shopxo.likeball.top/index.php?s=/api/Mi/measurement",
  62. type: 'POST',
  63. data: formData,
  64. dataType: 'JSON',
  65. cache: false,
  66. processData: false,
  67. contentType: false,
  68. success: function(data) {
  69. console.log(data);
  70. if (data['whether'] == true) {
  71. var result = '';
  72. var result1 = '';
  73. result += '<img src="' + 'http://tp5-shopxo.likeball.top/' + data['site'] + '" width="100">';
  74. result1 += 'http://tp5-shopxo.likeball.top/' + data['site'];
  75. $('#front').html(result);
  76. $('#fronts').val(result1);
  77. }
  78. },
  79. error: function(data) {
  80. console.log("错误");
  81. }
  82. });
  83. }
  84. </script>
  85. <!-- 身份证反面 -->
  86. <script type="text/javascript">
  87. function card() {
  88. var formData = new FormData();
  89. formData.append("reverse", $('#reverse')[0].files[0]);
  90. // console.log(formData);
  91. $.ajax({
  92. url: "http://tp5-shopxo.likeball.top/index.php?s=/api/Mi/measurement",
  93. type: 'POST',
  94. data: formData,
  95. dataType: 'JSON',
  96. cache: false,
  97. processData: false,
  98. contentType: false,
  99. success: function(data) {
  100. console.log(data);
  101. if (data['whether'] == true) {
  102. var result = '';
  103. var result1 = '';
  104. result += '<img src="' + 'http://tp5-shopxo.likeball.top/' + data['site'] + '" width="100">';
  105. result1 += 'http://tp5-shopxo.likeball.top/' + data['site'];
  106. $('#frontage').html(result);
  107. $('#frontages').val(result1);
  108. }
  109. },
  110. error: function(data) {
  111. console.log("错误");
  112. }
  113. });
  114. }
  115. </script>
  116. <!-- 银行卡正面 -->
  117. <script type="text/javascript">
  118. function obverse() {
  119. var formData = new FormData();
  120. formData.append("transaction", $('#transaction')[0].files[0]);
  121. // console.log(formData);
  122. $.ajax({
  123. url: "http://tp5-shopxo.likeball.top/index.php?s=/api/Mi/measurement",
  124. type: 'POST',
  125. data: formData,
  126. dataType: 'JSON',
  127. cache: false,
  128. processData: false,
  129. contentType: false,
  130. success: function(data) {
  131. console.log(data);
  132. if (data['whether'] == true) {
  133. var result = '';
  134. var result1 = '';
  135. result += '<img src="' + 'http://tp5-shopxo.likeball.top/' + data['site'] + '" width="100">';
  136. result1 += 'http://tp5-shopxo.likeball.top/' + data['site'];
  137. $('#banking').html(result);
  138. $('#bankings').val(result1);
  139. }
  140. },
  141. error: function(data) {
  142. console.log("错误");
  143. }
  144. });
  145. }
  146. </script>
  147. <!-- 银行卡反面 -->
  148. <script type="text/javascript">
  149. function versa() {
  150. var formData = new FormData();
  151. formData.append("redlining", $('#redlining')[0].files[0]);
  152. // console.log(formData);
  153. $.ajax({
  154. url: "http://tp5-shopxo.likeball.top/index.php?s=/api/Mi/measurement",
  155. type: 'POST',
  156. data: formData,
  157. dataType: 'JSON',
  158. cache: false,
  159. processData: false,
  160. contentType: false,
  161. success: function(data) {
  162. console.log(data);
  163. if (data['whether'] == true) {
  164. var result = '';
  165. var result1 = '';
  166. result += '<img src="' + 'http://tp5-shopxo.likeball.top/' + data['site'] + '" width="100">';
  167. result1 += 'http://tp5-shopxo.likeball.top/' + data['site'];
  168. $('#house').html(result);
  169. $('#houses').val(result1);
  170. }
  171. },
  172. error: function(data) {
  173. console.log("错误");
  174. }
  175. });
  176. }
  177. </script>

tp控制器中


 
  1. public function measurement()
  2. {
  3. $response = array();
  4. //这是身份证正面
  5. if ( isset( $_FILES['drawing'] ) && $_FILES['drawing']['error'] == 0 ) {
  6. $drawing = request()->file('drawing');
  7. $picture = $drawing->validate( ['ext'=>'jpg,png,gif'] )->move( ROOT_PATH . 'static' . DS .'upload/mi/img' );
  8. }
  9. if ( isset( $picture ) ) {
  10. $filePaths = '/static' . DS . 'upload/mi/img/'. $picture->getSaveName();
  11. $response['whether'] = true;
  12. $response['site'] = $filePaths;
  13. echo json_encode($response);
  14. }
  15. // 正面结束
  16. // 这是反面
  17. if ( isset( $_FILES['reverse'] ) && $_FILES['reverse']['error'] == 0 ) {
  18. $reverse = request()->file('reverse');
  19. $reverse = $reverse->validate( ['ext'=>'jpg,png,gif'] )->move( ROOT_PATH . 'static' . DS .'upload/mi/img' );
  20. }
  21. if ( isset( $reverse ) ) {
  22. $contrary = '/static' . DS . 'upload/mi/img/'. $reverse->getSaveName();
  23. $response['whether'] = true;
  24. $response['site'] = $contrary;
  25. echo json_encode($response);
  26. }
  27. //银行卡正面
  28. if ( isset( $_FILES['transaction'] ) && $_FILES['transaction']['error'] == 0 ) {
  29. $transaction = request()->file('transaction');
  30. $transaction = $transaction->validate( ['ext'=>'jpg,png,gif'] )->move( ROOT_PATH . 'static' .DS . 'upload/mi/img' );
  31. }
  32. if ( isset( $transaction ) ) {
  33. $stuck = '/static' . DS . 'upload/mi/img/'. $transaction->getSaveName();
  34. $response['whether'] = true;
  35. $response['site'] = $stuck;
  36. echo json_encode($response);
  37. }
  38. //银行卡反面
  39. if ( isset( $_FILES['redlining'] ) && $_FILES['redlining']['error'] == 0 ) {
  40. $redlining = request()->file('redlining');
  41. $redlining = $redlining->validate( ['ext'=>'jpg,png,gif'] )->move( ROOT_PATH . 'static' . DS .'upload/mi/img' );
  42. }
  43. if ( isset( $redlining ) ) {
  44. $other = '/static' . DS . 'upload/mi/img/'. $redlining->getSaveName();
  45. $response['whether'] = true;
  46. $response['site'] = $other;
  47. echo json_encode($response);
  48. }
  49. }

总结

以上所述是小编给大家介绍的ThinkPHP5 通过ajax插入图片并实时显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载