js input type=file 赋值 http网络file
时间: 2023-08-27 07:32:09 浏览: 126
angular-file-input:为Angular 1中的文件输入标签提供ng-model支持
在JavaScript中,由于安全限制,无法直接通过input type=file控件将http网络文件的路径赋值给input元素。这是由于浏览器出于安全考虑,不允许网页访问用户的本地文件系统或远程文件系统。
如果您需要显示一个网络文件的链接,您可以使用HTML `<a>`标签。例如:
```html
<a href="http://example.com/myfile.pdf">myfile.pdf</a>
```
如果您需要下载网络文件,您可以使用JavaScript的XMLHttpRequest对象来下载文件,并将文件数据赋值给input元素的value属性。例如:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/myfile.pdf', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
var file = new Blob([this.response], {type: 'application/pdf'});
var fileUrl = URL.createObjectURL(file);
var inputElement = document.getElementById('myInput');
inputElement.value = fileUrl;
}
};
xhr.send();
```
这段代码会使用XMLHttpRequest对象下载http://example.com/myfile.pdf文件,并将文件数据赋值给一个Blob对象。然后,通过URL.createObjectURL()方法将Blob对象转换为URL,并将URL赋值给input元素的value属性。注意,在这个例子中,input元素的type属性应该为"text"或"url",而不是"file"。
阅读全文