js獲取選擇文件,js獲取文件格式

本文目錄一覽:

input file 在js里獲取文件內容

input file在選擇完文件之後,他的值就是這個文件在你機器上的路徑

js本身是不能去讀取這個文件的內容的,比如獲取圖片大小,類型之類

你說的功能是屬於ajax上傳文件,伺服器完成上傳後返迴文件的信息(或者內容),然後再在html上載入出來

這個功能一定要後台來完成

上傳一個文本文件,input file獲取本機路徑,上傳至伺服器,伺服器讀取文本內容返迴文本內容,在html上列印出來

js選取文件並顯示文件

你用input就能獲取到文件路徑吧, 你在input下面加個img,通過js把input的文件路徑寫在img src屬性上就好了,沒有點擊上傳的時候。如果你想文件都上傳到伺服器上後,只能寫相對路徑了

js實現選擇文件夾路徑

input type=”button” value=”choose folder” name=”” onclick=”BrowseFolder()”

function BrowseFolder(){

try{

   var Message = “please choose folder”;   //選擇框提示信息

   var Shell = new ActiveXObject( “Shell.Application” );

   var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目錄為:我的電腦

   //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目錄為:桌面

   if(Folder != null){

  Folder = Folder.items(); // 返回 FolderItems 對象

  Folder = Folder.item(); // 返回 Folderitem 對象

  Folder = Folder.Path;    // 返迴路徑

  alert(Folder); 

 }

}catch(e){

   alert(“exception”);

}

}

js獲取HTML5 多文件file選擇的數量

1、並沒有原生的方法控制個數。

2、解決辦法:等選擇完了用js去計算有多少個,如果超出了就提示。思路如下:

1)你可以在選擇完文件後,你的input的onchange事件中,判斷event.target.files.length就可以知道你的文件多少了。

2)在onchange事件中使用

if (event.target.files.length 10) {

console.log(“圖片太多啦!超過十張啦!”);

let files = event.target.files

files = Array.from(files).slice(0,10)

//此處寫你的上傳介面,參數就是files

console.log(“只上傳10張哦”,files)

}

這個方法可以限制文件只需要上傳選中的前10個。

擴展資料:

1、關於input標籤上傳文件,還有一個屬性是accept。可以限制只能上傳圖片類型,這樣可以避免用戶上傳很多非圖片的文件,不好處理。使用方法:input id=”File1″ type=”file”  accept=”image/*”  /

2、調用介面上傳文件的方法,可以使用FormData,FromData 是一次 http mulitpartfrom-data 的請求內容可以使用 append 方法向其添加名詞對,然後使用 XMLHttpRequest 的 send() 方法發送.

eg:

var fileObj = new FromData();

fileObj.append(‘key’,value);   // value 可以是一個字元串 string 也可以是一個 blob (代表,file對象)

var xhr = new XMLHttpRequest();

xhr.open(‘POST’,’url’,true);

xhr.send(fileObj);

參考資料:

MDN技術文檔-input type=’file’/

原生js獲取文件

HTML5新增了關於文件的File,FileReader兩個對象,用於獲取文件信息和讀取文件信息。

var

    fileInput = document.getElementById(‘test-image-file’),

    info = document.getElementById(‘test-file-info’),

    preview = docement.getElementById(‘test-image-preview’);

//監聽change事件

fileInput.addEventListener(‘change’, function() {

  //清除背景圖片

  preview.style.backgroundImage = ”;

  //檢查文件是否選擇

  if(!fileInput.value) {

    info.innerHTML = ‘沒有選擇文件’;

    return;

  }

  //獲取file文件引用:

  var file = fileInput.files[0];

  //獲取文件信息

  info.innerHTML = ‘文件:’ + file.name + ‘br’ +

                  ‘大小:’ + file.size + ‘br’ +

                  ‘修改:’ + file.lastModifiedDate;

if(file.type !== ‘image/jpeg’ file.type !== ‘image/png’ file.type !== ‘image/gif’) {

  alert(‘不是有效的圖片文件’);

  return;

}

  //讀取文件

  var reader = new FileReader();

  reader.onload = function(e) {

    var data = e.target.result;

  preview.style.backgroundImage = ‘url(‘+ data + ‘)’;

  };

  //以DataURL的形式讀取文件:

  reader.readerAsDataURL(file);

})

js點擊選擇文件目錄的功能

最近做一個小項目,前端需要有一個功能是點擊某按鈕時,彈出文件選擇的框,然後獲取目錄並寫入對應的輸入框里,以往是選擇某個文件進行上傳,功能看起來有些像,但這次不同的是只能選擇某個目錄而不是文件,因為它並不是上傳,它只是為了選擇後台生成的文件保存的路徑。

於是網上查解決方案,查到兩種,

一種是僅在谷歌瀏覽器上有效的方式,在input節點裡加一個屬性 webkitdirectory,就可以實現點擊彈出選擇目錄的功能,然後就可以截取目錄,此種方式對非空文件夾是可以的實現的,只需監聽此input的change事件即可,但如果選擇的是空文件夾,就不會觸發事件,就無法獲取路徑,所以這方法不複合我的需求。

另一種是只適用於IE瀏覽器的方式,即調用IE的activeX控制項,為點擊按鈕綁定事件,然後就可以獲取目錄,然後到目錄調到想要的地方即可,具體實現方式是:

input id=”show”

button onclick=”clickBtn()”點擊/button

function click() {

    try {

        var Message = “\u8bf7\u9009\u62e9\u6587\u4ef6\u5939”; //選擇框提示                var Shell = new ActiveXObject(“Shell.Application”);

        var Folder = Shell.BrowseForFolder(0, Message, 64, 17); //起始目錄為:我的電腦                //var Folder = Shell.BrowseForFolder(0, Message, 0); //起始目錄為:桌面                if (Folder != null) {

            Folder = Folder.items(); // 返回 FolderItems 對象            

            Folder = Folder.item(); // 返回 Folderitem 對象            

            Folder = Folder.Path; // 返迴路徑            

            if (Folder.charAt(Folder.length – 1) != “\\”) {

                Folder = Folder + “\\”;

            }

            document.getElementById(‘show’).value = Folder;

            return Folder;

        }

    } catch (e) {  alert(e.message); }

}

但些方式也有一個問題是,此控制項是默認關閉的,需要用戶手動啟用,並且要把本站點加入可信任站點才行,具體設置過程是:

1. 單擊菜單工具-Internet選項-安全-受信任站點-站點-把此網站設為可信站點

2. 在自定義級別-對沒有標記為安全的ActiveX控制項進行初始化和腳本運行”—-“啟用”

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270026.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:35
下一篇 2024-12-16 13:35

相關推薦

發表回復

登錄後才能評論