Hướng dẫn how do i accept an image in html? - làm cách nào để chấp nhận một hình ảnh trong html?

❮ Thẻ HTML

Thí dụ

Chỉ định loại tệp nào mà người dùng có thể chọn từ hộp thoại đầu vào tệp:

& nbsp; Chọn hình ảnh: & NBSP; & nbsp;
  Select image:
 
 

Hãy tự mình thử »

Định nghĩa và cách sử dụng

Thuộc tính


4 Chỉ định một bộ lọc cho loại tệp nào mà người dùng có thể chọn từ hộp thoại đầu vào tệp.

Lưu ý: Thuộc tính


4 chỉ có thể được sử dụng với

6.
The

4 attribute can only be used with

6.

Mẹo: Không sử dụng thuộc tính này như một công cụ xác thực. Tải lên tệp phải được xác thực trên máy chủ. Do not use this attribute as a validation tool. File uploads should be validated on the server.

Hỗ trợ trình duyệt

Các số trong bảng chỉ định phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ thuộc tính.

Thuộc tính
Chấp nhận26.0 10.0 37.0 11.1 15.0

Cú pháp

Mẹo: Để chỉ định nhiều hơn một giá trị, hãy tách các giá trị bằng dấu phẩy [ví dụ:


7. To specify more than one value, separate the values with a comma [e.g.

7.

Giá trị thuộc tính

Giá trịSự mô tả
File_extensionChỉ định [các] tiện ích mở rộng tệp [ví dụ: .gif, .jpg, .png, .doc] Người dùng có thể chọn từ
âm thanh/*Người dùng có thể chọn tất cả các tệp âm thanh
video/*Người dùng có thể chọn tất cả các tệp video
hình ảnh/*Người dùng có thể chọn tất cả các tệp hình ảnh
Media_TypeMột loại phương tiện hợp lệ, không có tham số. Nhìn vào các loại phương tiện truyền thông IANA để biết danh sách đầy đủ các loại phương tiện tiêu chuẩn

❮ Thẻ HTML



8 Các thành phần với

9 Hãy để người dùng chọn một hoặc nhiều tệp từ bộ lưu trữ thiết bị của họ. Sau khi được chọn, các tệp có thể được tải lên máy chủ bằng cách sử dụng biểu mẫu hoặc thao tác bằng mã JavaScript và API tệp.

9
let the user choose one or more files from their device storage. Once chosen, the files can be uploaded to a server using form submission, or manipulated using JavaScript code and the File API.

Thử nó

Giá trị

Thuộc tính ____20 của tệp đầu vào chứa một chuỗi đại diện cho đường dẫn đến [các] tệp đã chọn. Nếu chưa chọn tệp, giá trị là một chuỗi trống [


  
    Choose file to upload
    
  
  
    Submit
  

1]. Khi người dùng đã chọn nhiều tệp,

  
    Choose file to upload
    
  
  
    Submit
  

0 thể hiện tệp đầu tiên trong danh sách các tệp họ đã chọn. Các tệp khác có thể được xác định bằng thuộc tính

  
    Choose file to upload
    
  
  
    Submit
  

3 của đầu vào.

Thuộc tính bổ sung

Ngoài các thuộc tính phổ biến được chia sẻ bởi tất cả các phần tử


8, các đầu vào loại

  
    Choose file to upload
    
  
  
    Submit
  

5 cũng hỗ trợ các thuộc tính sau.

Chấp nhận

Giá trị thuộc tính


4 là một chuỗi xác định các loại tệp mà đầu vào tệp sẽ chấp nhận. Chuỗi này là một danh sách được phân tách bằng dấu phẩy của các nhà xác định loại tệp duy nhất. Bởi vì một loại tệp nhất định có thể được xác định theo nhiều cách, nên việc cung cấp một tập hợp các nhà xác định loại kỹ lưỡng khi bạn cần các tệp có định dạng nhất định.unique file type specifiers. Because a given file type may be identified in more than one manner, it's useful to provide a thorough set of type specifiers when you need files of a given format.

Chẳng hạn, có một số cách có thể xác định được các tệp Microsoft Word, do đó, một trang web chấp nhận các tệp Word có thể sử dụng


8 như thế này:


chiếm lấy

Giá trị thuộc tính


  
    Choose file to upload
    
  
  
    Submit
  

8 là một chuỗi chỉ định camera nào sẽ sử dụng để chụp dữ liệu hình ảnh hoặc video, nếu thuộc tính

4 chỉ ra rằng đầu vào phải thuộc một trong các loại đó. Giá trị của
div {
  margin-bottom: 10px;
}
0 chỉ ra rằng camera và/hoặc micrô phải đối mặt với người dùng. Giá trị của
div {
  margin-bottom: 10px;
}
1 chỉ định rằng camera hướng ra ngoài và/hoặc micrô nên được sử dụng. Nếu thuộc tính này bị thiếu, tác nhân người dùng có thể tự do quyết định những việc cần làm của riêng mình. Nếu chế độ đối diện được yêu cầu không có sẵn, tác nhân người dùng có thể quay trở lại chế độ mặc định ưa thích của nó.

Lưu ý:


  
    Choose file to upload
    
  
  
    Submit
  

8 Trước đây là một thuộc tính boolean, nếu có, yêu cầu [các] thiết bị chụp phương tiện của thiết bị như camera hoặc micrô được sử dụng thay vì yêu cầu đầu vào tệp.

  
    Choose file to upload
    
  
  
    Submit
  

8 was previously a Boolean attribute which, if present, requested that the device's media capture device[s] such as camera or microphone be used instead of requesting a file input.

nhiều

Khi thuộc tính

div {
  margin-bottom: 10px;
}
3 Boolean được chỉ định, đầu vào tệp cho phép người dùng chọn nhiều hơn một tệp.

Các thuộc tính không chuẩn

Ngoài các thuộc tính được liệt kê ở trên, các thuộc tính không chuẩn sau đây có sẵn trên một số trình duyệt. Bạn nên cố gắng tránh sử dụng chúng khi có thể, vì làm như vậy sẽ hạn chế khả năng mã của bạn hoạt động trong các trình duyệt không thực hiện chúng.

div {
  margin-bottom: 10px;
}
4

Thuộc tính Boolean

div {
  margin-bottom: 10px;
}
4, nếu có, chỉ ra rằng chỉ có các thư mục mới có sẵn để được người dùng chọn trong giao diện chọn tệp. Xem
div {
  margin-bottom: 10px;
}
6 để biết thêm chi tiết và ví dụ.

Mặc dù ban đầu chỉ được triển khai cho các trình duyệt dựa trên WebKit,

div {
  margin-bottom: 10px;
}
4 cũng có thể sử dụng được trong Microsoft Edge cũng như Firefox 50 trở lên. Tuy nhiên, mặc dù nó có hỗ trợ tương đối rộng, nhưng nó vẫn không tiêu chuẩn và không nên được sử dụng trừ khi bạn không có sự thay thế.

Trình xác định loại tệp duy nhất

Trình xác định loại tệp duy nhất là một chuỗi mô tả một loại tệp có thể được người dùng chọn trong phần tử


8 loại

  
    Choose file to upload
    
  
  
    Submit
  

5. Mỗi trình xác định loại tệp duy nhất có thể có một trong các biểu mẫu sau:unique file type specifier is a string that describes a type of file that may be selected by the user in an

8 element of type

  
    Choose file to upload
    
  
  
    Submit
  

5. Each unique file type specifier may take one of the following forms:

  • Một tiện ích mở rộng tên tệp không nhạy cảm trường hợp hợp lệ, bắt đầu với một ký tự khoảng thời gian ["."]. Ví dụ:
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    0,
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    1 hoặc
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    2.
  • Một chuỗi loại MIME hợp lệ, không có phần mở rộng.
  • Chuỗi
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    3 có nghĩa là "bất kỳ tệp âm thanh nào".
  • Chuỗi
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    4 có nghĩa là "bất kỳ tệp video".
  • Chuỗi
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    5 có nghĩa là "bất kỳ tệp hình ảnh" nào.

Thuộc tính


4 lấy một chuỗi chứa một hoặc nhiều nhà xác định loại tệp duy nhất này làm giá trị của nó, được phân tách bằng dấu phẩy. Ví dụ: một trình chọn tệp cần nội dung có thể được trình bày dưới dạng hình ảnh, bao gồm cả các định dạng hình ảnh tiêu chuẩn và tệp PDF, có thể trông như thế này:


Sử dụng đầu vào tệp

Một ví dụ cơ bản


  
    Choose file to upload
    
  
  
    Submit
  

div {
  margin-bottom: 10px;
}

Điều này tạo ra đầu ra sau:

Bất kể thiết bị hoặc hệ điều hành của người dùng, đầu vào tệp cung cấp một nút mở hộp thoại Picker Picker cho phép người dùng chọn tệp.

Bao gồm thuộc tính

div {
  margin-bottom: 10px;
}
3, như được hiển thị ở trên, chỉ định rằng nhiều tệp có thể được chọn cùng một lúc. Người dùng có thể chọn nhiều tệp từ trình chọn tệp theo bất kỳ cách nào mà nền tảng đã chọn của họ cho phép [ví dụ: bằng cách giữ sự thay đổi hoặc điều khiển, sau đó nhấp vào]. Nếu bạn chỉ muốn người dùng chọn một tệp duy nhất cho mỗi

8, hãy bỏ qua thuộc tính
div {
  margin-bottom: 10px;
}
3.

Nhận thông tin về các tệp đã chọn

Các tệp đã chọn 'được trả về bởi thuộc tính


  
    Choose file to upload
    
  
  
    Submit
  

3 của phần tử, là đối tượng
div {
  margin-bottom: 10px;
}
1 chứa danh sách các đối tượng
div {
  margin-bottom: 10px;
}
2.
div {
  margin-bottom: 10px;
}
1 hoạt động giống như một mảng, vì vậy bạn có thể kiểm tra thuộc tính
div {
  margin-bottom: 10px;
}
4 của nó để lấy số lượng tệp đã chọn.

Mỗi đối tượng

div {
  margin-bottom: 10px;
}
2 chứa các thông tin sau:

div {
  margin-bottom: 10px;
}
6

Tên của tập tin.

div {
  margin-bottom: 10px;
}
7

Một số chỉ định ngày và thời gian mà tệp được sửa đổi lần cuối, tính bằng mili giây kể từ thời đại Unix [ngày 1 tháng 1 năm 1970 lúc nửa đêm].

div {
  margin-bottom: 10px;
}
8 không dùng nữaDeprecated

Một đối tượng

div {
  margin-bottom: 10px;
}
9 đại diện cho ngày và thời gian mà tệp được sửa đổi lần cuối. Điều này không được sử dụng và không nên được sử dụng. Sử dụng
div {
  margin-bottom: 10px;
}
7 thay thế.

const input = document.querySelector["input[type=file]"];
input.value = "foo";
1

Kích thước của tệp trong byte.

const input = document.querySelector["input[type=file]"];
input.value = "foo";
2

Loại MIME của tập tin.

const input = document.querySelector["input[type=file]"];
input.value = "foo";
3 không chuẩnNon-standard

Một chuỗi chỉ định đường dẫn của tệp so với thư mục cơ sở được chọn trong trình chọn thư mục [nghĩa là bộ chọn


  
    Choose file to upload
    
  
  
    Submit
  

5 trong đó thuộc tính
div {
  margin-bottom: 10px;
}
4 được đặt]. Đây là không chuẩn và nên được sử dụng một cách thận trọng.

Lưu ý: Bạn có thể đặt cũng như nhận được giá trị của


  
    Choose file to upload
    
  
  
    Submit
  

3 trong tất cả các trình duyệt hiện đại; Điều này gần đây nhất đã được thêm vào Firefox, trong phiên bản 57 [xem Bug & NBSP; 1384030]. You can set as well as get the value of

  
    Choose file to upload
    
  
  
    Submit
  

3 in all modern browsers; this was most recently added to Firefox, in version 57 [see bug 1384030].

Giới hạn các loại tệp được chấp nhận

Thường thì bạn sẽ không muốn người dùng có thể chọn bất kỳ loại tệp tùy ý nào; Thay vào đó, bạn thường muốn họ chọn các tệp thuộc loại hoặc loại cụ thể. Ví dụ: nếu đầu vào tệp của bạn cho phép người dùng tải lên ảnh hồ sơ, bạn có thể muốn họ chọn các định dạng hình ảnh tương thích web, chẳng hạn như JPEG hoặc PNG.

Các loại tệp có thể chấp nhận có thể được chỉ định với thuộc tính


4, có một danh sách phân tách bằng dấu phẩy các phần mở rộng tệp được phép hoặc các loại MIME. Vài ví dụ:

  • const input = document.querySelector["input[type=file]"];
    input.value = "foo";
    
    8 hoặc
    const input = document.querySelector["input[type=file]"];
    input.value = "foo";
    
    9 - Chấp nhận các tệp PNG.
  • 
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    0 hoặc
    
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    1 - Chấp nhận các tệp PNG hoặc JPEG.
  • 
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    2 - Chấp nhận bất kỳ tệp nào có loại
    
      
        Choose file to upload
        
      
      
        Submit
      
    
    
    5 MIME. [Nhiều thiết bị di động cũng cho phép người dùng chụp ảnh bằng máy ảnh khi nó được sử dụng.]
  • 
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    4 - Chấp nhận bất cứ thứ gì có mùi giống như một tài liệu MS Word.

Hãy xem xét một ví dụ đầy đủ hơn:


  
    Choose file to upload
    
  
  
    Submit
  

div {
  margin-bottom: 10px;
}

Điều này tạo ra một đầu ra trông tương tự với ví dụ trước:

Nó có thể trông giống nhau, nhưng nếu bạn thử chọn một tệp có đầu vào này, bạn sẽ thấy trình chọn tệp chỉ cho phép bạn chọn các loại tệp được chỉ định trong giá trị


4 [giao diện chính xác khác nhau giữa các trình duyệt và hệ điều hành].

Thuộc tính


4 không xác nhận các loại của các tệp đã chọn; Nó cung cấp gợi ý cho các trình duyệt để hướng dẫn người dùng hướng tới việc chọn các loại tệp chính xác. Vẫn có thể [trong hầu hết các trường hợp] để người dùng chuyển đổi tùy chọn trong trình chọn tệp cho phép ghi đè này và chọn bất kỳ tệp nào họ muốn, sau đó chọn các loại tệp không chính xác.

Do đó, bạn nên đảm bảo rằng thuộc tính


4 được sao lưu bằng cách xác thực phía máy chủ thích hợp.

Ghi chú

  1. Bạn không thể đặt giá trị của trình chọn tệp từ tập lệnh - làm một cái gì đó như sau không có hiệu lực:

    const input = document.querySelector["input[type=file]"];
    input.value = "foo";
    

  2. Khi một tệp được chọn bằng cách sử dụng
    
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    8, đường dẫn thực đến tệp nguồn không được hiển thị trong thuộc tính ____2020 của đầu vào vì lý do bảo mật rõ ràng. Thay vào đó, tên tệp được hiển thị, với
    html {
      font-family: sans-serif;
    }
    
    form {
      width: 580px;
      background: #ccc;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid black;
    }
    
    form ol {
      padding-left: 0;
    }
    
    form li,
    div > p {
      background: #eee;
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      list-style-type: none;
      border: 1px solid black;
    }
    
    form img {
      height: 64px;
      order: 1;
    }
    
    form p {
      line-height: 32px;
      padding-left: 10px;
    }
    
    form label,
    form button {
      background-color: #7f9ccb;
      padding: 5px 10px;
      border-radius: 5px;
      border: 1px ridge black;
      font-size: 0.8rem;
      height: auto;
    }
    
    form label:hover,
    form button:hover {
      background-color: #2d5ba3;
      color: white;
    }
    
    form label:active,
    form button:active {
      background-color: #0d3f8f;
      color: white;
    }
    
    0 được chuẩn bị cho nó. Có một số lý do lịch sử cho sự khó hiểu này, nhưng nó được hỗ trợ trên tất cả các trình duyệt hiện đại, và trên thực tế được xác định trong thông số kỹ thuật.

Ví dụ

Trong ví dụ này, chúng tôi sẽ trình bày một trình chọn tệp nâng cao hơn một chút, tận dụng thông tin tệp có sẵn trong thuộc tính


  
    Choose file to upload
    
  
  
    Submit
  

3, cũng như hiển thị một vài thủ thuật thông minh.

Lưu ý: Bạn có thể thấy mã nguồn đầy đủ cho ví dụ này trên GitHub-File-example.html [xem nó cũng trực tiếp]. Chúng tôi sẽ không giải thích CSS; JavaScript là trọng tâm chính. You can see the complete source code for this example on GitHub — file-example.html [see it live also]. We won't explain the CSS; the JavaScript is the main focus.

Trước hết, chúng ta hãy nhìn vào HTML:


  
    Choose images to upload [PNG, JPG]
    
  
  
    No files currently selected for upload
  
  
    Submit
  

html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}

Điều này tương tự như những gì chúng ta đã thấy trước đây - không có gì đặc biệt để bình luận.

Tiếp theo, hãy đi qua JavaScript.

Trong các dòng đầu tiên của tập lệnh, chúng tôi nhận được các tham chiếu đến chính đầu vào biểu mẫu và phần tử

html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
2 với lớp
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
3. Tiếp theo, chúng tôi ẩn phần tử

8 - chúng tôi làm điều này bởi vì các đầu vào tệp có xu hướng xấu, khó tạo kiểu và không nhất quán trong thiết kế của chúng trên các trình duyệt. Bạn có thể kích hoạt phần tử
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
5 bằng cách nhấp vào
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
6 của nó, vì vậy tốt hơn là ẩn trực quan
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
5 và tạo kiểu cho nhãn như một nút, vì vậy người dùng sẽ biết tương tác với nó nếu họ muốn tải lên các tệp.

const input = document.querySelector['input'];
const preview = document.querySelector['.preview'];

input.style.opacity = 0;

Lưu ý:

html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
8 được sử dụng để ẩn đầu vào tệp thay vì
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
9 hoặc
const input = document.querySelector['input'];
const preview = document.querySelector['.preview'];

input.style.opacity = 0;
0, bởi vì công nghệ hỗ trợ diễn giải hai kiểu sau có nghĩa là đầu vào tệp không tương tác.
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
8 is used to hide the file input instead of
html {
  font-family: sans-serif;
}

form {
  width: 580px;
  background: #ccc;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid black;
}

form ol {
  padding-left: 0;
}

form li,
div > p {
  background: #eee;
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  list-style-type: none;
  border: 1px solid black;
}

form img {
  height: 64px;
  order: 1;
}

form p {
  line-height: 32px;
  padding-left: 10px;
}

form label,
form button {
  background-color: #7f9ccb;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px ridge black;
  font-size: 0.8rem;
  height: auto;
}

form label:hover,
form button:hover {
  background-color: #2d5ba3;
  color: white;
}

form label:active,
form button:active {
  background-color: #0d3f8f;
  color: white;
}
9 or
const input = document.querySelector['input'];
const preview = document.querySelector['.preview'];

input.style.opacity = 0;
0, because assistive technology interprets the latter two styles to mean the file input isn't interactive.

Tiếp theo, chúng tôi thêm một trình nghe sự kiện vào đầu vào để lắng nghe các thay đổi đối với giá trị đã chọn của nó [trong trường hợp này, khi các tệp được chọn]. Người nghe sự kiện gọi chức năng

const input = document.querySelector['input'];
const preview = document.querySelector['.preview'];

input.style.opacity = 0;
1 tùy chỉnh của chúng tôi.


0

Bất cứ khi nào hàm

const input = document.querySelector['input'];
const preview = document.querySelector['.preview'];

input.style.opacity = 0;
1 được gọi, chúng tôi:

  • Sử dụng vòng lặp
    const input = document.querySelector['input'];
    const preview = document.querySelector['.preview'];
    
    input.style.opacity = 0;
    
    3 để làm trống các nội dung trước đó của bản xem trước
    html {
      font-family: sans-serif;
    }
    
    form {
      width: 580px;
      background: #ccc;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid black;
    }
    
    form ol {
      padding-left: 0;
    }
    
    form li,
    div > p {
      background: #eee;
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      list-style-type: none;
      border: 1px solid black;
    }
    
    form img {
      height: 64px;
      order: 1;
    }
    
    form p {
      line-height: 32px;
      padding-left: 10px;
    }
    
    form label,
    form button {
      background-color: #7f9ccb;
      padding: 5px 10px;
      border-radius: 5px;
      border: 1px ridge black;
      font-size: 0.8rem;
      height: auto;
    }
    
    form label:hover,
    form button:hover {
      background-color: #2d5ba3;
      color: white;
    }
    
    form label:active,
    form button:active {
      background-color: #0d3f8f;
      color: white;
    }
    
    2.
  • Lấy đối tượng
    div {
      margin-bottom: 10px;
    }
    
    1 chứa thông tin trên tất cả các tệp đã chọn và lưu trữ nó trong một biến có tên là
    const input = document.querySelector['input'];
    const preview = document.querySelector['.preview'];
    
    input.style.opacity = 0;
    
    6.
  • Kiểm tra xem nếu không có tệp nào được chọn, bằng cách kiểm tra xem
    const input = document.querySelector['input'];
    const preview = document.querySelector['.preview'];
    
    input.style.opacity = 0;
    
    7 có bằng 0. Nếu vậy, hãy in một thông báo vào bản xem trước
    html {
      font-family: sans-serif;
    }
    
    form {
      width: 580px;
      background: #ccc;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid black;
    }
    
    form ol {
      padding-left: 0;
    }
    
    form li,
    div > p {
      background: #eee;
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      list-style-type: none;
      border: 1px solid black;
    }
    
    form img {
      height: 64px;
      order: 1;
    }
    
    form p {
      line-height: 32px;
      padding-left: 10px;
    }
    
    form label,
    form button {
      background-color: #7f9ccb;
      padding: 5px 10px;
      border-radius: 5px;
      border: 1px ridge black;
      font-size: 0.8rem;
      height: auto;
    }
    
    form label:hover,
    form button:hover {
      background-color: #2d5ba3;
      color: white;
    }
    
    form label:active,
    form button:active {
      background-color: #0d3f8f;
      color: white;
    }
    
    2 nói rằng không có tệp nào được chọn.
  • Nếu các tệp đã được chọn, chúng tôi lặp qua từng cái, in thông tin về nó vào bản xem trước
    html {
      font-family: sans-serif;
    }
    
    form {
      width: 580px;
      background: #ccc;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid black;
    }
    
    form ol {
      padding-left: 0;
    }
    
    form li,
    div > p {
      background: #eee;
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      list-style-type: none;
      border: 1px solid black;
    }
    
    form img {
      height: 64px;
      order: 1;
    }
    
    form p {
      line-height: 32px;
      padding-left: 10px;
    }
    
    form label,
    form button {
      background-color: #7f9ccb;
      padding: 5px 10px;
      border-radius: 5px;
      border: 1px ridge black;
      font-size: 0.8rem;
      height: auto;
    }
    
    form label:hover,
    form button:hover {
      background-color: #2d5ba3;
      color: white;
    }
    
    form label:active,
    form button:active {
      background-color: #0d3f8f;
      color: white;
    }
    
    2. Những điều cần lưu ý ở đây:
  • Chúng tôi sử dụng hàm
    
    
    00 tùy chỉnh để kiểm tra xem tệp có đúng loại không [ví dụ: các loại hình ảnh được chỉ định trong thuộc tính
    
    
    4].
  • Nếu có, chúng tôi:
    • In ra tên và kích thước tệp của nó thành một mục danh sách bên trong
      html {
        font-family: sans-serif;
      }
      
      form {
        width: 580px;
        background: #ccc;
        margin: 0 auto;
        padding: 20px;
        border: 1px solid black;
      }
      
      form ol {
        padding-left: 0;
      }
      
      form li,
      div > p {
        background: #eee;
        display: flex;
        justify-content: space-between;
        margin-bottom: 10px;
        list-style-type: none;
        border: 1px solid black;
      }
      
      form img {
        height: 64px;
        order: 1;
      }
      
      form p {
        line-height: 32px;
        padding-left: 10px;
      }
      
      form label,
      form button {
        background-color: #7f9ccb;
        padding: 5px 10px;
        border-radius: 5px;
        border: 1px ridge black;
        font-size: 0.8rem;
        height: auto;
      }
      
      form label:hover,
      form button:hover {
        background-color: #2d5ba3;
        color: white;
      }
      
      form label:active,
      form button:active {
        background-color: #0d3f8f;
        color: white;
      }
      
      2 trước đó [thu được từ
      
      
      03 và
      
      
      04]. Hàm
      
      
      05 tùy chỉnh trả về một phiên bản được định dạng độc đáo có kích thước tính bằng byte/kb/mb [theo mặc định, trình duyệt báo cáo kích thước bằng byte tuyệt đối].
    • Tạo bản xem trước hình thu nhỏ của hình ảnh bằng cách gọi
      
      
      06. Sau đó, chèn hình ảnh vào mục danh sách bằng cách tạo một
      
      
      07 mới và đặt
      
      
      08 của nó thành hình thu nhỏ.
  • Nếu loại tệp không hợp lệ, chúng tôi hiển thị một thông báo bên trong mục danh sách nói với người dùng rằng họ cần chọn loại tệp khác.


1

Hàm


00 tùy chỉnh lấy đối tượng
div {
  margin-bottom: 10px;
}
2 làm tham số, sau đó sử dụng

11 để kiểm tra xem có bất kỳ giá trị nào trong

12 có khớp với thuộc tính
const input = document.querySelector["input[type=file]"];
input.value = "foo";
2 của tệp không. Nếu một trận đấu được tìm thấy, hàm trả về

14. Nếu không tìm thấy trận đấu nào, nó sẽ trả về

15.


2

Hàm


05 lấy một số [của byte, được lấy từ thuộc tính
const input = document.querySelector["input[type=file]"];
input.value = "foo";
1 của tệp hiện tại] và biến nó thành một kích thước được định dạng độc đáo trong byte/kb/mb.


3

Ví dụ trông như thế này; Có một vở kịch:

Thông số kỹ thuật

Sự chỉ rõ
HTML tiêu chuẩn # file-upload-state- [type = file]
# file-upload-state-[type=file]

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

  • Sử dụng các tệp từ các ứng dụng web - chứa một số ví dụ hữu ích khác liên quan đến
    
      
        Choose images to upload [PNG, JPG]
        
      
      
        No files currently selected for upload
      
      
        Submit
      
    
    
    8 và API tệp.
  • Khả năng tương thích của các thuộc tính CSS

Làm thế nào để bạn nhập một hình ảnh trong HTML?

Xác định một hình ảnh là một nút gửi. Đường dẫn đến hình ảnh được chỉ định trong thuộc tính SRC. defines an image as a submit button. The path to the image is specified in the src attribute.

Làm thế nào để bạn chấp nhận trong HTML?

Thuộc tính chấp nhận chỉ định một bộ lọc cho những loại tệp mà người dùng có thể chọn từ hộp thoại đầu vào tệp. Lưu ý: Thuộc tính chấp nhận chỉ có thể được sử dụng với. Mẹo: Không sử dụng thuộc tính này như một công cụ xác thực. Tải lên tệp phải được xác thực trên máy chủ.The accept attribute can only be used with . Tip: Do not use this attribute as a validation tool. File uploads should be validated on the server.

Làm thế nào để bạn thực hiện một đầu vào chỉ chấp nhận một hình ảnh?

Nhưng có thể hạn chế các loại tệp chỉ trong hình ảnh hoặc phần mở rộng tệp hình ảnh nhất định.Để đạt được điều này, bạn cần sử dụng thuộc tính HTML Accept.Thuộc tính này chỉ được sử dụng và đóng vai trò là bộ lọc để chọn đầu vào tệp từ hộp thoại đầu vào tệp.use the HTML accept attribute. This attribute is only used with and serves as a filter to select file inputs from the file input dialog box.

Làm thế nào để bạn đính kèm một tệp trong html?

Xác định trường chọn tệp và nút "Duyệt" để tải lên tệp.Để xác định trường chọn tệp cho phép chọn nhiều tệp, hãy thêm nhiều thuộc tính.Mẹo: Luôn thêm thẻ cho thực tiễn tiếp cận tốt nhất! defines a file-select field and a "Browse" button for file uploads. To define a file-select field that allows multiple files to be selected, add the multiple attribute. Tip: Always add the tag for best accessibility practices!

Làm thế nào để bạn tải lên PNG trong HTML?

Cách chèn một hình ảnh trong HTML trong 6 bước dễ dàng..
Tải lên tệp hình ảnh ..
Truy cập thư mục chủ đề ..
Thêm thuộc tính IMG SRC vào hình ảnh ..
Đặt chiều rộng và chiều cao ..
Thêm một thuộc tính ALT ..
Lưu thay đổi..

Làm cách nào để đặt một hình ảnh vào hộp văn bản trong HTML?

Giải pháp 1. Bạn có thể sử dụng CSS cho việc này.Đặt hình ảnh nền.Bây giờ bạn sẽ có một hộp văn bản đẹp với biểu tượng nền và văn bản sẽ không được đặt trên biểu tượng.

Bài Viết Liên Quan

Chủ Đề