关于HTML中上传图片

女爷i 2022-05-06 13:46 312阅读 0赞

关于HTML中上传图片

值得注意的是:当一个表单里面包含这个上传元素的时候,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才会认识并正确执行。

但是还有一点,浏览器只允许用户点击来选择本地文件,用JavaScript对的value赋值是没有任何效果的。当用户选择了上传某个文件后,JavaScript也无法获得该文件的真实路径:
但是有个方法可以,利用File和FileReader两个主要对象,可以获得文件信息并读取文件。

HTML文件:

  1. <form method="post" enctype="multipart/form-data" id="file_upload">
  2.   <p>图片预览:</p>
  3.   <div id="preview"></div>
  4.   <p>
  5.     <input type="file" id="test-image-file" name="test" accept="image/gif, image/jpeg, image/png, image/jpg">
  6.   </p>
  7. <p id="test-file-info"></p>
  8. </form>

CSS文件:

  1. #preview {
  2. border: 1px solid #ccc;
  3. width: 50%;
  4. height: 200px;
  5. background-size: contain;
  6. background-repeat: no-repeat;
  7. background-position: center center;
  8. }

JavaScript:

  1. <script type="text/javascript">
  2. var
  3. fileInput = document.getElementById('test-image-file'),
  4. info = document.getElementById('test-file-info'),
  5. preview = document.getElementById('test-image-preview');
  6. // 监听change事件:
  7. fileInput.addEventListener('change', function() {
  8. // 清除背景图片:
  9. preview.style.backgroundImage = '';
  10. // 检查文件是否选择:
  11. if (!fileInput.value) {
  12. info.innerHTML = '没有选择文件';
  13. return;
  14. }
  15. // 获取File引用:
  16. var file = fileInput.files[0];
  17. //判断文件大小
  18. var size = file.size;
  19. if (size >= 1 * 1024 * 1024) {
  20. alert('文件大小超出限制');
  21. return false;
  22. }
  23. // 获取File信息:
  24. info.innerHTML = '文件名称: ' + file.name + '<br>' +
  25. '文件大小: ' + file.size + '<br>' +
  26. '上传时间: ' + file.lastModifiedDate;
  27. if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
  28. alert('不是有效的图片文件!');
  29. return;
  30. }
  31. // 读取文件:
  32. var reader = new FileReader();
  33. reader.onload = function(e) {
  34. var
  35. data = e.target.result;
  36. preview.style.backgroundImage = 'url(' + data + ')';
  37. };
  38. // 以DataURL的形式读取文件:
  39. reader.readAsDataURL(file);
  40. });
  41. </script>

发表评论

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

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

相关阅读

    相关 Android关于图片如何压缩

    开发中遇到需要上传图片的场景还是很常见的,这就涉及到图片的压缩处理。如果不进行压缩,势必造成消耗大量的流量,下载图片的速度慢等。 关于android如何压缩,网上的资料也