图片预览

「爱情、让人受尽委屈。」 2021-12-22 09:21 832阅读 0赞

定制上传按钮:

ExpandedBlockStart.gif

复制代码

  1. <div
  2. style="position: relative;display: inline-block;height: 50px;min-width: 300px;overflow: hidden;">
  3. <div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;z-index: 1000;border: 1px dotted #9d9d9d;color: #9d9d9d;line-height: 50px;padding-left: 15px;">
  4. <i class="fa fa-cloud-upload" aria-hidden="true"></i>
  5. <span>点击上传文件</span>
  6. </div>
  7. <input name="customer_excel" type="file" id="excelFile"
  8. style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;z-index: 1001;opacity: 0;filter:alpha(opacity=0);">
  9. </div>
  10. $(function () {
  11. $('#excelFile').change(function (e) {
  12. var fileName = e.currentTarget.files[0].name;
  13. $(this).prev().find('span').text(fileName);
  14. })
  15. })

复制代码

ExpandedBlockStart.gif

复制代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <form method="POST" enctype="multipart/form-data">
  10. {% csrf_token %}
  11. <div style="height: 100px;width: 100px;padding: 2px;border: 1px solid #dddddd;position: relative;">
  12. <img style="height: 100%;width: 100%;border: 0;overflow: hidden;border-radius: 50%;" id="previewImg"
  13. src="/static/imgs/default.png">
  14. <input style="top: 0;left: 0;right: 0;bottom: 0;opacity: 0;position: absolute;z-index: 102;" id="avatarImg"
  15. name="avatar_img" type="file" class="img-file"/>
  16. </div>
  17. <div>点击图片更换(<a href="#">撤销</a>)</div>
  18. <p>
  19. <input type="text" placeholder="用户名">
  20. </p>
  21. <p>
  22. <input type="text" placeholder="密码">
  23. </p>
  24. </form>
  25. </div>
  26. </body>
  27. </html>

复制代码

预览

ExpandedBlockStart.gif

复制代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <form method="POST" enctype="multipart/form-data">
  10. {% csrf_token %}
  11. <div style="height: 100px;width: 100px;padding: 2px;border: 1px solid #dddddd;position: relative;">
  12. <img style="height: 100%;width: 100%;border: 0;overflow: hidden;border-radius: 50%;" id="previewImg"
  13. src="/static/imgs/default.png">
  14. <input style="top: 0;left: 0;right: 0;bottom: 0;opacity: 1;position: absolute;z-index: 102;" id="avatarImg"
  15. name="avatar" type="file" class="img-file"/>
  16. </div>
  17. <div>点击图片更换(<a href="#">撤销</a>)</div>
  18. <p>
  19. <input type="text" placeholder="用户名">
  20. </p>
  21. <p>
  22. <input type="text" placeholder="密码">
  23. </p>
  24. <input type="submit" value="提交">
  25. </form>
  26. <script src="/static/jquery-1.12.4.js"></script>
  27. <script>
  28. $(function () {
  29. bindChangeAvatar1();
  30. });
  31. function bindChangeAvatar1() {
  32. $('#avatarImg').change(function () {
  33. var file_obj = $(this)[0].files[0];
  34. var blob = window.URL.createObjectURL(file_obj);
  35. document.getElementById('previewImg').src = blob;
  36. $('#previewImg').load(function () {
  37. window.URL.revokeObjectURL(blob);
  38. })
  39. })
  40. }
  41. </script>
  42. </div>
  43. </body>
  44. </html>

复制代码

ExpandedBlockStart.gif

复制代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <form method="POST" enctype="multipart/form-data">
  10. {% csrf_token %}
  11. <div style="height: 100px;width: 100px;padding: 2px;border: 1px solid #dddddd;position: relative;">
  12. <img style="height: 100%;width: 100%;border: 0;overflow: hidden;border-radius: 50%;" id="previewImg"
  13. src="/static/imgs/default.png">
  14. <input style="top: 0;left: 0;right: 0;bottom: 0;opacity: 1;position: absolute;z-index: 102;" id="avatarImg"
  15. name="avatar" type="file" class="img-file"/>
  16. </div>
  17. <div>点击图片更换(<a href="#">撤销</a>)</div>
  18. <p>
  19. <input type="text" placeholder="用户名">
  20. </p>
  21. <p>
  22. <input type="text" placeholder="密码">
  23. </p>
  24. <input type="submit" value="提交">
  25. </form>
  26. <script src="/static/jquery-1.12.4.js"></script>
  27. <script>
  28. $(function () {
  29. bindChangeAvatar2();
  30. });
  31. function bindChangeAvatar2() {
  32. $('#avatarImg').change(function () {
  33. var file_obj = $(this)[0].files[0];
  34. var reader = new FileReader();
  35. reader.readAsDataURL(file_obj);
  36. reader.onload = function (e) {
  37. $('#previewImg')[0].src = this.result;
  38. };
  39. })
  40. }
  41. </script>
  42. </div>
  43. </body>
  44. </html>

复制代码

ExpandedBlockStart.gif

复制代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <form method="POST" enctype="multipart/form-data">
  10. {% csrf_token %}
  11. <div style="height: 100px;width: 100px;padding: 2px;border: 1px solid #dddddd;position: relative;">
  12. <img style="height: 100%;width: 100%;border: 0;overflow: hidden;border-radius: 50%;" id="previewImg"
  13. src="/static/imgs/default.png">
  14. <input style="top: 0;left: 0;right: 0;bottom: 0;opacity: 1;position: absolute;z-index: 102;" id="avatarImg"
  15. name="avatar" type="file" class="img-file"/>
  16. </div>
  17. <div>点击图片更换(<a href="#">撤销</a>)</div>
  18. <p>
  19. <input type="text" placeholder="用户名">
  20. </p>
  21. <p>
  22. <input type="text" placeholder="密码">
  23. </p>
  24. <input type="submit" value="提交">
  25. </form>
  26. <script src="/static/jquery-1.12.4.js"></script>
  27. <script>
  28. $(function () {
  29. bindChangeAvatar3();
  30. });
  31. function bindChangeAvatar3() {
  32. $('#avatarImg').change(function () {
  33. var file_obj = $(this)[0].files[0];
  34. var form = new FormData();
  35. form.add('img_upload', file_obj);
  36. $.ajax({
  37. url: '',
  38. data: form,
  39. processData: false, // tell jQuery not to process the data
  40. contentType: false, // tell jQuery not to set contentType
  41. success: function (arg) {
  42. // 给img标签设置src属性,预览
  43. }
  44. })
  45. })
  46. }
  47. </script>
  48. </div>
  49. </body>
  50. </html>

复制代码

ExpandedBlockStart.gif

复制代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9. <div style="height: 100px;width: 100px;padding: 2px;border: 1px solid #dddddd;position: relative;">
  10. <iframe style="display: none;" id="upload_iframe" name="upload_iframe"></iframe>
  11. <form method="POST" action="上传地址" enctype="multipart/form-data" target="upload_iframe">
  12. <img style="height: 100%;width: 100%;border: 0;overflow: hidden;border-radius: 50%;" id="previewImg"
  13. src="/static/imgs/default.png">
  14. <input style="top: 0;left: 0;right: 0;bottom: 0;opacity: 1;position: absolute;z-index: 102;" id="avatarImg"
  15. name="avatar" type="file" class="img-file"/>
  16. </form>
  17. </div>
  18. <div>点击图片更换(<a href="#">撤销</a>)</div>
  19. <form method="POST" enctype="multipart/form-data">
  20. {% csrf_token %}
  21. <p>
  22. <input type="text" placeholder="图片路径">
  23. </p>
  24. <p>
  25. <input type="text" placeholder="用户名">
  26. </p>
  27. <p>
  28. <input type="text" placeholder="密码">
  29. </p>
  30. <input type="submit" value="提交">
  31. </form>
  32. <script src="/static/jquery-1.12.4.js"></script>
  33. <script>
  34. $(function () {
  35. bindChangeAvatar4();
  36. });
  37. function bindChangeAvatar4() {
  38. $('#avatarImg').change(function () {
  39. $(this).parent().submit();
  40. $('#upload_iframe').load(function () {
  41. var iframeContents = this.contentWindow.document.body.innerText;
  42. iframeContents = JSON.parse(iframeContents);
  43. if (iframeContents.status) {
  44. $('#previewImg').attr('src', '/' + iframeContents.data);
  45. }
  46. })
  47. })
  48. }
  49. </script>
  50. </div>
  51. </body>
  52. </html>

复制代码

参考兼容性:

  • https://developer.mozilla.org/zh-CN/docs/Web/API/URL/createObjectURL
  • https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
  • https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

转载于:https://www.cnblogs.com/bai-max/p/9355845.html

发表评论

表情:
评论列表 (有 0 条评论,832人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uniapp图片

    一、需求 最近有一个留言板需求,留言之后需要展示留言信息,信息里面除了文字还有图片。 点击图片,可预览图片。就用到了 uniapp 预览图片的功能:u