J'essaie de télécharger un fichier via session.upload_progress.name - cela fonctionne très bien sur certains fichiers, mais si un fichier est "plus grand" f.ex. 13 Mo, le script s'arrête. Le problème n'est pas à cause de la taille du fichier - c'est plus sur la limite de temps je pense. Si j'utilise une connexion Internet plus rapide, cela fonctionne bien. Mon hébergeur est Strato - est-ce que quelqu'un a une solution?PHP Télécharger un fichier via session.upload_progress.name
Ceci est mon code:
<?php session_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Upload CSV Dateien</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="jquery.form.js"></script>
</head>
<body>
<article>
<header>
<h1>UPLOAD Import Dateien</h1>
</header>
<section>
<form action="upload.php" method="post" enctype="multipart/form-data" id="upload_form">
<!--
Dieses Feld ist wichtig. PHP benötigt dies für die Zuordnung.
Der Wert (Value) ist für uns später wichtig um auf die globale $_SESSION zuzugreifen
-->
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="test">
<div>
<label for="datei1">Bitte Datei zum hochladen auswählen: </label>
<p></p>
<input name="file1" type="file" id="datei1">
</div>
<div>
<input name="upload_start" type="submit" value="Hochladen">
<input name="abbrechen" type="button" value="Abbrechen" id="abbrechen">
</div>
</form>
</section>
<section>
<div>
<progress max="1" value="0" id="fortschritt"></progress>
<p id="fortschritt_txt"></p>
</div>
</section>
</article>
<script>
var intervalID = 0;
$(document).ready(function(e) {
$('#upload_form').submit(function(e) {
if($('#datei1').val() == ''){
e.preventDefault(); //Event abbrechen
return false;
}
intervalID = setInterval(function() {
$.getJSON('fortschritt.php', function(data){
if(data)
{
$('#fortschritt').val(data.bytes_processed/data.content_length);
$('#fortschritt_txt').html('Fortschritt '+ Math.round((data.bytes_processed/data.content_length)*100) + '%');
}
});
}, 1000); //Zeitintervall auf 1s setzen
$('#upload_form').ajaxSubmit({
success: function()
{
$('#fortschritt').val('1');
$('#fortschritt_txt').html('Fertig');
clearInterval(intervalID);
location.reload();
},
error: function()
{
$('#fortschritt').val('1');
$('#fortschritt_txt').html('Ein Fehler ist aufgetreten');
clearInterval(intervalID);
}
});
e.preventDefault(); //Event Abbrechen
});
$('#abbrechen').click(function(e) {
$.ajax("fortschritt.php?cancel=true");
$('#fortschritt').val('1');
$('#fortschritt_txt').html('Upload abgebrochen');
clearInterval(intervalID);
});
});
</script>
</body>
</html>
Et ce sont upload.php
<?php
session_start();
/*
* Session-Upload-Progress ist leer
* durch die Option session.upload_progress.enabled = On
*/
var_dump($_SESSION);
/*
* Übliches Format von $_FILES
*/
var_dump($_FILES);
move_uploaded_file($_FILES['file1']['tmp_name'],'../import/'.$_FILES['file1']['name']);
/*
* Wenn abgebrochen
*/
if($_FILES['error'] == UPLOAD_ERR_EXTENSION)
echo "Datei abgebrochen";
?>
J'editet mon post - où dois-je ajouter cette set_time_limit Je l'ai essayé de le mettre au début du téléchargement?. php, mais sans succès – LJSven
mettre le code après session_start – akhilp2255
dans quel fichier? upload.php? Je l'ai essayé sans succès – LJSven