Gå til innhold

Hjelp med uploadscript


Anbefalte innlegg

Videoannonse
Annonse

Her er upload.php!

 

Skjult tekst: (Marker innholdet i feltet for å se teksten):

<?php
//edit this
$_max_file_size = '5000000'; //file size in bytes.
$upload_dir = "uploads/"; //upload folder..
$_i = "3";                //number of files to upload at one time
//end edit 

echo "Maximum file size : " . $_max_file_size/1000 . "MB<br>";
echo "<form enctype='multipart/form-data' action='?do=upload' method='post'>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='" . $_max_file_size , "'>";
echo "Choose your file(s): <br>";
//show number of files to select
For($i=0; $i <= $_i-1;$i++) 
{
echo "<input name='file" . $i . "' type='file'><br>";
}
echo "<input type='submit' value='Upload File'>";
echo "</form>";

if($_GET['do'] == 'upload')
{
//upload all the fields until done
For($i=0; $i <= $_i-1; $i++) 
{
//create a random number
$_random = rand(1, 1000000);
//file with the upload folder
$target_path = $upload_dir . $_random . basename($_FILES['file' . $i]['name']);
//actual file name with the random number
$_file_name = $_random . basename($_FILES['file' . $i]['name']);

//do not upload the 'left blank' fields
if(basename($_FILES['file' . $i]['name']) != '')
{

if(move_uploaded_file($_FILES['file' . $i]['tmp_name'], $target_path)) 
{
    //uploaded successfuly
   $_uploaded=1;
} 
else
{
   //error uploading
   $_error=1;
}
}
else
{
$_check=$_check+1;
}

}

//file(s) did upload
if($_uploaded == '1')
{
$_uploaded=0;
echo "The file(s) have been uploaded.<br>";
}
//file uploaded?
if($_error == '1')
{
$_error=0;
echo "There was an error uploading some of the file(s), please try again! Maybe the file size. Maximum file size is " . $_max_file_size/1000 . "KB<br>";
}
//user selected a file?
if($_check == $_i)
{
$_check=0;
echo "Select a file first than click 'Upload File'<br>";
}
}
?>

Lenke til kommentar

Skjult tekst: (Marker innholdet i feltet for å se teksten):

<?php
//edit this
$_max_file_size = '5000000'; //file size in bytes.
$upload_dir = "uploads/"; //upload folder..
$_i = "3";                //number of files to upload at one time
//end edit 

echo "Maximum file size : " . $_max_file_size/1000 . "MB<br>";
echo "<form enctype='multipart/form-data' action='?do=upload' method='post'>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='" . $_max_file_size , "'>";
echo "Choose your file(s): <br>";
//show number of files to select
For($i=0; $i <= $_i-1;$i++) 
{
echo "<input name='file" . $i . "' type='file'><br>";
}
echo "<input type='submit' value='Upload File'>";
echo "</form>";

// create file name array
$file_names = array();

if($_GET['do'] == 'upload')
{
//upload all the fields until done
For($i=0; $i <= $_i-1; $i++) 
{
//create a random number
$_random = rand(1, 1000000);
//file with the upload folder
$target_path = $upload_dir . $_random . basename($_FILES['file' . $i]['name']);
//actual file name with the random number
$_file_name = $_random . basename($_FILES['file' . $i]['name']);

//do not upload the 'left blank' fields
if(basename($_FILES['file' . $i]['name']) != '')
{

if(move_uploaded_file($_FILES['file' . $i]['tmp_name'], $target_path)) 
{
   //uploaded successfuly
  $_uploaded=1;
  
// put file name to array
array_push($file_names, $_file_name);
} 
else
{
  //error uploading
  $_error=1;
}
}
else
{
$_check=$_check+1;
}

}

//file(s) did upload
if($_uploaded == '1')
{
$_uploaded=0;
echo "The file(s) have been uploaded.<br>";

// print links
foreach($file_names as $file_name) {
print('<a href="'.$upload_dir.$file_name.'">'.$upload_dir.$file_name.'</a><br />');
}
}
//file uploaded?
if($_error == '1')
{
$_error=0;
echo "There was an error uploading some of the file(s), please try again! Maybe the file size. Maximum file size is " . $_max_file_size/1000 . "KB<br>";
}
//user selected a file?
if($_check == $_i)
{
$_check=0;
echo "Select a file first than click 'Upload File'<br>";
}
}
?>

 

EDIT: :)

Endret av simenss
Lenke til kommentar

De kan faktisk akkurat det de vil. De kan kjøre all PHP-kode, og utføre linuxkommandoer som apache har lov til.

De kan feks snoke i dine passordfiler(feks for tilbkobling til database) osv.

 

Lag deg et array som innholder de filtypene du vil tillate/ikke tillate. Så sjekker du om filendelsen inneholder, eller ikke inneholder noe av det du har satt i arrayet.

Lenke til kommentar
Filendelser har ingen betydning på linux-maskiner.

7041042[/snapback]

Stemmer det, men det betyr ikke at alt parses som PHP.

 

Det jeg skulle frem til var egentlig at han ikke bør gi folk tilgang til å lase opp .php*, og andre filendelser som tilhører serversidescripting.

Og om han skal det, bør han ikke gi ut filnavnet til opplasteren, eller ha opplastingsmappen utenfor webrota.

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...