11-03-2013, 18:01
Witam.
Mam problem z komunikatem o błędnym rozmiarze pliku.
Jak wysyłam plik mniejszy niż 20 MB to wszystko działa, ale jak próbuje wysłać plik większy niż 20 MB, to nic się nie dzieje. Nie ma żadnego komuniakatu o błędzie.
W php.ini mam ustawione na 20 MB: post_max_size, upload_max_filesize,
Co zrobić, by podczas próby załadowania pliku większego niż 20 MB wyskoczył komunikat o zbyt dużym pliku, a nie czyścił się formularz bez żadnego komentarza? smile.gif.
<?php # Skrypt formularz_kontaktowy.php
require_once('../config.inc.php');
require_once('../mysqli_connect.php');
$max_rozmiar=20971520;
if(isset($_POST['submitted'])) {
//Sprawdzana załącznik
if (is_uploaded_file($_FILES['zalacznik']['tmp_name'])){
$rozmiar_zal=$_FILES['zalacznik']['size'];
echo'Rozmiar pliku '.$rozmiar_zal;
if ($rozmiar_zal > $max_rozmiar ) {
$errors[]='Błąd! Maksymalny rozmiar załącznika może wynieść 20 MB';
} else {
//Tworzy tymczasową nazwę pliku
$temp='../uploads/'.md5($_FILES['zalacznik']['name']);
if(move_uploaded_file($_FILES['zalacznik']['tmp_name'],$temp)) {
echo'<p> Plik został załadowany</p>';
//zmienna $zal przechowuje nazwę obrazka
$zal=$_FILES['zalacznik']['name'];
} else {
$errors[]='Nie udało się przenieść pliku.';
$temp=$_FILES['zalacznik']['tmp_name'];
}
}// Koniec insrukcji z maksymalnym rozmiarem załącznika
} else { //Nie załadowano pliku
$temp=NULL;
$errors[]='Nie załadowano pliku';
}
}//Kończy warunek wysyłania
?>
<form enctype="multipart/form-data" action="test.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="20971520"/>
<fieldset><legend>Załaduj plik</legend>
<p><b>PLIK: </b> <input type="file" name="zalacznik"/></p>
</fieldset>
<div align="center"><input type="submit" name="submit" value="Załaduj" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</form>
Mam problem z komunikatem o błędnym rozmiarze pliku.
Jak wysyłam plik mniejszy niż 20 MB to wszystko działa, ale jak próbuje wysłać plik większy niż 20 MB, to nic się nie dzieje. Nie ma żadnego komuniakatu o błędzie.
W php.ini mam ustawione na 20 MB: post_max_size, upload_max_filesize,
Co zrobić, by podczas próby załadowania pliku większego niż 20 MB wyskoczył komunikat o zbyt dużym pliku, a nie czyścił się formularz bez żadnego komentarza? smile.gif.
<?php # Skrypt formularz_kontaktowy.php
require_once('../config.inc.php');
require_once('../mysqli_connect.php');
$max_rozmiar=20971520;
if(isset($_POST['submitted'])) {
//Sprawdzana załącznik
if (is_uploaded_file($_FILES['zalacznik']['tmp_name'])){
$rozmiar_zal=$_FILES['zalacznik']['size'];
echo'Rozmiar pliku '.$rozmiar_zal;
if ($rozmiar_zal > $max_rozmiar ) {
$errors[]='Błąd! Maksymalny rozmiar załącznika może wynieść 20 MB';
} else {
//Tworzy tymczasową nazwę pliku
$temp='../uploads/'.md5($_FILES['zalacznik']['name']);
if(move_uploaded_file($_FILES['zalacznik']['tmp_name'],$temp)) {
echo'<p> Plik został załadowany</p>';
//zmienna $zal przechowuje nazwę obrazka
$zal=$_FILES['zalacznik']['name'];
} else {
$errors[]='Nie udało się przenieść pliku.';
$temp=$_FILES['zalacznik']['tmp_name'];
}
}// Koniec insrukcji z maksymalnym rozmiarem załącznika
} else { //Nie załadowano pliku
$temp=NULL;
$errors[]='Nie załadowano pliku';
}
}//Kończy warunek wysyłania
?>
<form enctype="multipart/form-data" action="test.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="20971520"/>
<fieldset><legend>Załaduj plik</legend>
<p><b>PLIK: </b> <input type="file" name="zalacznik"/></p>
</fieldset>
<div align="center"><input type="submit" name="submit" value="Załaduj" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</form>