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
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
<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>