cari

Rumah  >  Soal Jawab  >  teks badan

Storan Tempatan: Panduan Cara Menyimpan dan Memulihkan Objek Fail

<p>Saya mempunyai aplikasi menggunakan HTML5/JavaScript yang menggunakan </p> <pre class="brush:php;toolbar:false;"><input type="file" accept="image/*;capture=camera" onchange="gotPhoto(this)"></pre> ; <p>Untuk menangkap imej kamera. Memandangkan aplikasi saya mahu berjalan di luar talian, bagaimana saya boleh menyimpan objek Fail (https://developer.mozilla.org/en-US/docs/Web/API/File) dalam storan setempat supaya ia boleh digunakan kemudian Dapatkannya apabila memuat naik melalui ajax? </p> <p>Saya mendapat objek fail daripada...</p> <pre class="brush:php;toolbar:false;">fungsi gotPhoto(elemen) { var file = element.files[0]; //Saya mahu menyimpan 'fail' ke storan tempatan di sini :-( }</pre> <p>Saya boleh menukar objek kepada rentetan dan menyimpannya, tetapi apabila saya memulihkannya, ia tidak lagi dikenali sebagai objek Fail dan oleh itu tidak boleh digunakan untuk mendapatkan kandungan fail. </p> <p>Saya rasa ini tidak boleh dicapai, tetapi saya terbuka menerima cadangan. </p> <p>Sebenarnya, penyelesaian saya ialah membaca kandungan fail semasa menyimpan dan menyimpan kandungan lengkap ke storan setempat. Ini berfungsi, tetapi menggunakan ruang storan setempat dengan cepat kerana setiap fail ialah foto 1MB+. </p>
P粉253518620P粉253518620461 hari yang lalu501

membalas semua(2)saya akan balas

  • P粉005134685

    P粉0051346852023-08-23 12:08:41

    Tukarkannya kepada base64 dan simpan.

    function gotPhoto(element) {
       var file = element.files[0];
       var reader = new FileReader()
       reader.onload = function(base64) {
          localStorage["file"] = base64;
       }
       reader.readAsDataURL(file);
    }
    // 保存到本地存储
    
    function getPhoto() {
       var base64 = localStorage["file"];
       var base64Parts = base64.split(",");
       var fileFormat = base64Parts[0].split(";")[1];
       var fileContent = base64Parts[1];
       var file = new File([fileContent], "文件名", {type: fileFormat});
       return file;
    }
    // 获取文件对象

    balas
    0
  • P粉811349112

    P粉8113491122023-08-23 11:45:18

    Anda tidak boleh menyerikan objek API fail.

    Walaupun ini tidak menyelesaikan masalah khusus, tetapi... Walaupun saya belum menggunakan ini, jika anda menyemak siaran ini nampaknya terdapat beberapa cara (walaupun belum disokong oleh kebanyakan penyemak imbas) untuk menyimpan data imej luar talian ke dalam beberapa fail supaya ia boleh dipulihkan apabila pengguna dalam talian (tanpa menggunakan localStorage)

    balas
    0
  • Batalbalas