J'ai un bouton qui, lorsqu'on clique sur Chrome ou Firefox ou Edge, affiche la fenêtre du navigateur de fichiers où je peux ensuite sélectionner un fichier et terminer le téléchargement du fichier. Cependant, lorsque je clique sur le bouton dans Safari, rien ne se passe - la fenêtre du navigateur de fichiers n'apparaît pas. Je cours sous Windows 10 et j'ai installé une version Windows de Safari.jQuery File Upload Ne fonctionne pas sur Safari
Button:
<a href="javascript:void(0)" id="uploadFile">Upload File</a>
Handler:
$(document).ready(function() {
$("#uploadFile").click(function() {
$("#uploadFileHandle").click();
$('html,body').css('cursor','progress');
var formdata = false;
if (window.FormData) {
formdata = new FormData();
}
$("#uploadFileHandle").on("change", function() {
$('html,body').css('cursor','progress');
var i = 0, len = this.files.length, file;
file = this.files[0];
formdata.append("fileUpload", file)
if (formdata) {
csrftoken();
$.ajax({
url: "/profile/uploadFile",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (response) {
if (response.success) {
var res = response.file;
$('html,body').css('cursor','default');
}
}
})
}
});
});
});
Toutes les idées sur la façon d'obtenir la fenêtre du navigateur de fichier apparaît lorsque le bouton Télécharger le fichier est cliqué dans Safari?
ouais suffit d'utiliser un plugin jquery, vous économiserez une tonne de maux de tête – Stephen
Cela n'ouvre pas une "fenêtre de fichier" dans n'importe quel navigateur? Il n'y a pas de code pour cela, et l'ancre est "annulée"? – adeneo
Je me souviens peut-être mal, mais il semble que vous essayez par programme d'activer le téléchargement de fichier avec un appel de clic artificiel et je pense que certains navigateurs désactiver cela comme mesure de sécurité et nécessitent un clic direct de l'utilisateur. C'est pourquoi beaucoup de gens utiliseront le champ label avec un attribut 'for' comme élément à cliquer pour déclencher une boîte de dialogue de téléchargement de fichier. –