Witam, kolejny problem z formularzem (ale już chyba ostatni). Chce zrobić porównanie wielkości pliku i w zależności albo komunikat albo plik zostaje na serwerze. Oto co napisałem do tej pory:
$max = 512000;
$rozmiar = filesize("$upload_dir$file_name"); //linijka nr 60 if ($rozmiar > $max)
{
}
Dodam, że plik się nie ładuje.
a oto treść błędu, który występuje:
Warning: filesize() [
function.filesize]: stat failed for upload_files/splyw_08.2009_074.jpg in
/home/c/h/o/chojnowski/www/test/index.php on line
60
<?php
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "upload_files/";
$upload_url = $url_dir."/upload_files/";
$message ="";
$allow = array("jpg", "jpeg", "gif", "png", "bmp");
//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("upload_files")) { die ("Folder nie istnieje"); }
if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$rozszerzenie_pliku = substr( $file_name, strrpos( $file_name, '.' ) +1
);
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;
//File Name Check
if ( $file_name =="") {
echo "<script language=\"javascript\">alert('Brak nazwy pliku.')</script>"; }
// File Size check
$max = 512000;
$rozmiar = filesize("$upload_dir$file_name"); if ($rozmiar > $max)
{
}
//File Type Check
if (in_array($rozszerzenie_pliku, $allow)) {
echo "<a href=$file_url>$file_url</a>"; }
else
{
echo "<script language=\"javascript\">alert('Dozwolone tylko pliki graficzne')</script>"; }
}
echo ' <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post"> Obrazek <input type="file" id="userfile" name="userfile">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input type="submit" name="upload" value="Załaduj">
</form> ';
?>
Powyżej pełny kod skryptu. Drugim problemem jest to, że nie wiem jak połączyć wynik sprawdzenia rozmiaru z tym, żeby upload dokonywał się po uzyskiwaniu poprawnego rozmiaru.
Z góry dziękuję za pomoc.