Gå til innhold

feil i upload script


Anbefalte innlegg

jeg har denne koden:

Klikk for å se/fjerne innholdet nedenfor
if ($_FILES["powa_fil"]["size"] < 200000000000)
 {
 if ($_FILES["powa_fil"]["error"] > 0)
   {
   echo "Return Code: " . $_FILES["powa_fil"]["error"] . "<br />";
   }
 else
   {
   echo "Upload: " . $_FILES["powa_fil"]["name"] . "<br />";
   echo "Type: " . $_FILES["powa_fil"]["type"] . "<br />";
   echo "Size: " . ($_FILES["powa_fil"]["size"] / 1024) . " Kb<br />";
   echo "Temp file: " . $_FILES["powa_fil"]["tmp_name"] . "<br />";
   if (file_exists("inc/powa/" . $_FILES["powa_fil"]["name"]))
     {
     echo $_FILES["powa_fil"]["name"] . " already exists. ";
     }
   else
     {
     move_uploaded_file($_FILES["powa_fil"]["tmp_name"],
     "inc/powa/" . $_FILES["powa_fil"]["name"]);
     echo "Stored in: " . "inc/powa/" . $_FILES["powa_fil"]["name"];
     }
   }
 }
else
 {
 echo "Invalid file";
 }

når jeg laster opp en powerpoint fil får jeg return code 1

 

hva er feil?

Lenke til kommentar
Videoannonse
Annonse
Noe som dette du tenker på?

if($_FILES["file"]["size"] > 200000)
{
die("For stor fil!");
}

 

Edit: Leste ikke posten skikkelig, så nå at du ville heve grensen i php.ini :blush:

8588508[/snapback]

nei, men jeg skal sette max file size større

Endret av The_Lozer
Lenke til kommentar

Du kan ikke sette den med ini_set. Som M4rTiN kunne opplyse oss om, er settingen PHP_INI_PERDIR, som betyr at denne kun kan endres i php.ini, .htaccess og httpd.conf.

 

httpd.conf har du ikke tilgang til på et vanlig webhotell.

 

Serverens sentrale php.ini har du heller ikke tilgang til, men noen få (feks domeneshop) lar deg definere en egen php.ini som du vil.

 

De fleste lar deg derimot lage en .htaccess-fil, der du ofte kan få overstyre php-innstillinger, slik M4rTiN forklarte.

Men noen webhoteller tillater ikke .htaccess, noen tillater ikke å endre php med dem, og noen tillater ikke bestemte konfigurasjoner gjennom .htaccess.

 

Så prøv med .htaccess, men får du en melding om "500 Internal error" eller noe slikt, tillater de ikke den bruken av .htaccess (eller du har gjort en feil i fila :).

Lenke til kommentar
Du kan ikke sette den med ini_set. Som M4rTiN kunne opplyse oss om, er settingen PHP_INI_PERDIR, som betyr at denne kun kan endres i php.ini, .htaccess og httpd.conf.

 

httpd.conf har du ikke tilgang til på et vanlig webhotell.

 

Serverens sentrale php.ini har du heller ikke tilgang til, men noen få (feks domeneshop) lar deg definere en egen php.ini som du vil.

 

De fleste lar deg derimot lage en .htaccess-fil, der du ofte kan få overstyre php-innstillinger, slik M4rTiN forklarte.

Men noen webhoteller tillater ikke .htaccess, noen tillater ikke å endre php med dem, og noen tillater ikke bestemte konfigurasjoner gjennom .htaccess.

 

Så prøv med .htaccess, men får du en melding om "500 Internal error" eller noe slikt, tillater de ikke den bruken av .htaccess (eller du har gjort en feil i fila :).

8591392[/snapback]

takk for et godt svar :thumbup:

Lenke til kommentar

Jeg har ett problem med mitt upload skript også..

<?php
// Folder for files
$upload = "uploads";

// Is $upload a writable folder? If not make it writable
$target_path =is_dir($upload) && is_writable($upload) ? $upload : chmod($upload, 0757);

$message = "";
if(empty($_FILES['uploadedfile']['name'])){
$message .="Specify an input file, please.";
}else{
// Shortening the $_FILES array
$file = $_FILES['uploadedfile'];
// Extract tmp-path from system
$old_path = $file['tmp_name'];

// Extracts filename from file
$filename = strip_tags(strtolower($file['name']));

// Set new path
$target_path = "$target_path/$filename";

//se if the file already exist's
if(file_exists($target_path)){
 $message = "$filename already exists";
}else{

// Get the mimetype of the file
$filetype = strtolower($file['type']);

// Mime types, here jpg-files onlyl
$mimetypes = array("image/jpg", "image/jpeg", "image/jpe");

// Set max filesize (from html form)
$max_size = $_POST['MAX_FILE_SIZE'];

// Determine file size
$filesize = $file['size'];

// Check wether mime type of file is allowed
$valid_type = in_array($filetype, $mimetypes) ? true: false;

// Check if file size of file is below max and over zero
$valid_size = $filesize <=$max_size && $filesize >0 ? true: false;


 if(!$valid_size || !$valid_type) {
 // Set error message
 $message .=  "Error during uploading: ";
 if(!$valid_type) $message .= "Wrong filetype, only ". implode($mimetypes, ", ")." are allowed<br />";
 if(!$valid_size) $message .= "The uploaded file is too big, max size = ".$max_size/2024 ."KB";
}else if(!move_uploaded_file($old_path, $target_path)){
 $message .= "Error during uploading: Unable to copy file to destination";
}else{
 // Everything is okay
 // changing file permissions on image
 chmod($target_path, 0757);
 $message .="your file is uploaded. One of the admins will take a look at it";
 }
}
}
print $message;
?>

når noen laster opp noe så får dem meldingen at filtypen ikke er rett men det er det og det de laster opp blir ikke lastet opp pga av dette her.. what is wrong? dette funket før men nå gjør det ikke det mer..

Endret av effortfilm
Lenke til kommentar
Klart man kan

upload_max_filesize er PHP_INI_PERDIR, som betyr at denne kan endres i php.ini, .htaccess og httpd.conf

 

Dette plasseres i en .htaccess

php_flag upload_max_filesize "20M"

8586018[/snapback]

ok, men når jeg skriver echo ini_get("upload_max_filesize"); så står det 0 når jeg har .htaccess fila, og 2M når jeg ikke har den, skal det ikke egentlig stå 20M der da?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...