wczytanie pliku w tablicę - pytanie

0


Mam (ściągnąłem sobie gotowca)


------------------------------------------------------------


<script>
function download(data, filename, type) {

    var file = new Blob([data], {type: type});
    if (window.navigator.msOpenBlob) // IE10+
        window.navigator.msSaveOrOpenBlob(file, filename);
    else { // Others
        var a = document.createElement("a"),
                url = URL.createObjectURL(file);
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        setTimeout(function() {
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);  
        }, 0); 
    }
}
</script>
-------------------------------------------------------------
Wywołuję tak:
download(moje,"dane.txt","text")
gdzie moje to 
var moje=[];
i tablica ma jakieś wartościi - ładnie z przcinkami zapisuje (download) plik dane.txt z wartościami tablicy.
Jak zrobić odwrotnie? By wczytać w tę tablicę plik tekstowy (upload). Okropnie długie i  pogmatwane  jest to co wygrzebałem i nic nie udało mi się zrobić.. Można coś prościej, podobnie jak tu tylko odwrotnie ☻?
0

Może AJAX?

0

Tak tak - ten link mi się przyda, pokombinuję, dzięki.

0

Ale on ciągnie z servera plik, takie cuś napotkałem, ja chcę upload z dysku lokalnego i tu jest od cholery dłubaniny... ☻

0

Tutaj masz gotowy przykład (tzn. ten drugi z upload.php)

0

No dzięki, spróbuję ☻

0
Zrobiłem, ale coś ze składnią chyba (no nie wiem co - kontrolne alerty się nawet nie wyświetlają) słabo toto znam.
-------------------------------------------------------------------------------------------------
<input id="sortpicture" type="file" name="sortpic" />
<button id="upload">Upload</button>
<script>
$("#upload").on("click", function() { alert("coto");
    var file_data = $("#sortpicture").prop("files")[0];   
    var form_data = new FormData();
    form_data.append("file", file_data);
    alert(form_data);
    $.ajax({
        url: "/uploads",
        dataType: 'script',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,                         
        type: 'post',
        success: function(){
            alert("works"); 
        }
    });
})
</script>
--------------------------------------------------------------------------------
 

Nie wiem co jest nie tak, więc pod siebie na razie nie przerabiam ☻
patrz martwe to

0

Dołącz bibliotekę jQuery

<html>
<head>
<title>jQuery Intro</title>
<meta charset="UTF-8">

<input id="sortpicture" type="file" name="sortpic" />
<button id="upload">Upload</button>

 <script src="<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>"></script>
        <script>
            

$('#upload').on('click', function() {
    var file_data = $('#sortpicture').prop('files')[0];   
    var form_data = new FormData();                  
    form_data.append('file', file_data);
    alert(form_data);                             
    $.ajax({
        url: 'upload.php', // point to server-side PHP script 
        dataType: 'text',  // what to expect back from the PHP script, if anything
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,                         
        type: 'post',
        success: function(php_script_response){
            alert(php_script_response); // display response from the PHP script, if any
        }
     });
});
</script>

Zawartość pliku "upload.php"

<?php
echo 'Error: ' . $_FILES['file']['name'] . '<br>';
    if ( 0 < $_FILES['file']['error'] ) {
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
    }

?>

Czy może chcesz wczytać do tablicy javascript dane z dysku lokalnego?

0

Tak tak

0

Tutaj masz wyjaśnienie

 <html>
    <head>
    <script>
      var openFile = function(event) {
        var input = event.target;

        var reader = new FileReader();
        reader.onload = function(){
          var text = reader.result;
          var node = document.getElementById('output');
          node.innerText = text;
          console.log(reader.result.substring(0, 200));
        };
        reader.readAsText(input.files[0]);
      };
    </script>
    </head>
    <body>
    <input type='file' accept='text/plain' onchange='openFile(event)'><br>
    <div id='output'>
    ...
    </div>
    </body>
    </html>

1 użytkowników online, w tym zalogowanych: 0, gości: 1