Dynadot โ€” .com Registration $8.99

PHP Upload Script

Spaceship Spaceship
Watch

NetworkTown.Net

Account Closed
Impact
2
Hi i need a php upload script please, i need it simply explaind so i can understand it thanks need it in php quick
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
Unstoppable DomainsUnstoppable Domains
Heres one i found off google:

<?php
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// You may change maxsize, and allowable upload file types.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//Mmaximum file size. You may increase or decrease.
$MAX_SIZE = 200000000000;

//Allowable file Mime Types. Add more mime types if you want
$FILE_MIMES = array('application/pdf','video/mpg','video/avi','image/jpeg','image/jpg','image/gif'
,'image/png','application/msword');

//Allowable file ext. names. you may add more extension names.
$FILE_EXTS = array('.pdf','.txt','.zip','.jpg','.png','.gif','.avi','.mpg','.mpeg','.asf');

//Allow file delete? no, if only allow upload only
$DELETABLE = false;

//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// Do not touch the below if you are not confident.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/************************************************************
* Setup variables
************************************************************/
$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 = "files/";
$upload_url = $url_dir."/files/";
$message ="";

/************************************************************
* Create upload Directory
************************************************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files directory doesn't exist and creation failed");
if (!chmod($upload_dir,0755))
die ("change permission to 755 failed.");
}

/************************************************************
* Process User's Request
************************************************************/
if ($_REQUEST[del] && $DELETABLE) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]\n");
fclose($resource);

if (strpos($_REQUEST[del],"/.")>0); //possible hacking
else if (strpos($_REQUEST[del],$upload_dir) === false); //possible hacking
else if (substr($_REQUEST[del],0,6)==$upload_dir) {
unlink($_REQUEST[del]);
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
}
else if ($_FILES['userfile']) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."upload - $_SERVER[REMOTE_ADDR]"
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."\n");
fclose($resource);

$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));

//File Size Check
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$message = "The file size is over 2MB.";
//File Type/Extension Check
else if (!in_array($file_type, $FILE_MIMES)
&&!in_array($file_ext, $FILE_EXTS) )
$message = "Sorry, $file_name($file_type) is not allowed to be uploaded.";
else
$message = do_upload($upload_dir, $upload_url);

print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else
$message = "Invalid File Specified.";

/************************************************************
* List Files
************************************************************/
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) &&!is_link($file)) {
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
if ($DELETABLE) {
$delfile = $file;
$delfile = str_replace("%","%25",$delfile);
$delfile = str_replace("&","%26",$delfile);
$delfile = str_replace("+","%2b",$delfile);
$delfile = str_replace("?","%3f",$delfile);
$filelist .= " <a href='?del=$upload_dir".$delfile."' title='delete'>x</a>";
}
$filelist .= "<sub><small><small><font color=grey> ".date("d-m H:i", filemtime($upload_dir.$file))
."</font></small></small></sub>";
$filelist .="<br>";
}
}

function do_upload($upload_dir, $upload_url) {

$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") {
$message = "Invalid File Name Specified";
return $message;
}

$result = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0777))
$message = "change permission to 777 failed.";
else
$message = ($result)?"$file_name uploaded successfully." :
"Somthing is wrong with uploading a file.";
return $message;
}

?>

<center>
<font color=red><?=$_REQUEST[message]?></font>
<br>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
upload File <input type="file" id="userfile" name="userfile">
<input type="submit" name="upload" value="upload">
</form>

<br><b>upload area</b>
<hr width=70%>
<?=$filelist?>
<hr width=70%>
<small><sup>Maintained by "Me"
<a style="text-decoration:none" href="http://URL-HERE/forum">Back</a>
</sup></small>
</center>
 
0
•••
can you put that in a php file
 
0
•••
Here is something simple:

PHP:
<html>
<head>
<title>Image upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
Image: <input type="file" name="image" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>

<?php

//The directory to upload the images - Must be writable CHMOD 777
$upload_dir = "images/";
//100kb - What size do you want to allow to be uploaded
$max_size = 100000;

if(is_uploaded_file($_FILES['image']['tmp_name']))
{
  $size = $_FILES['image']['size'];

  if($size > $max_size)
  {
    echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
    exit();
  }
  $filename = $_FILES['image']['name'];

  if(file_exists($upload_dir.$filename))
  {
    echo "Error: The file named <b>$filename</b> already exists.";
    exit();
  }

  if(move_uploaded_file($_FILES['image']['tmp_name'], $upload_dir.$filename))
  {
    echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
    exit();
  }
  else
  {
    echo "There was a problem uploading your file. Please try again.";
    exit();
  }
}
?>
 
0
•••
dose not work

SecondVersion said:
Here is something simple:

PHP:
<html>
<head>
<title>Image upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
Image: <input type="file" name="image" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>

<?php

//The directory to upload the images - Must be writable CHMOD 777
$upload_dir = "images/";
//100kb - What size do you want to allow to be uploaded
$max_size = 100000;

if(is_uploaded_file($_FILES['image']['tmp_name']))
{
  $size = $_FILES['image']['size'];

  if($size > $max_size)
  {
    echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
    exit();
  }
  $filename = $_FILES['image']['name'];

  if(file_exists($upload_dir.$filename))
  {
    echo "Error: The file named <b>$filename</b> already exists.";
    exit();
  }

  if(move_uploaded_file($_FILES['image']['tmp_name'], $upload_dir.$filename))
  {
    echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
    exit();
  }
  else
  {
    echo "There was a problem uploading your file. Please try again.";
    exit();
  }
}
?>
 
0
•••
Try this..


PHP:
<?php
if($_POST[finshed] == '1') {
//The directory to upload the images - Must be writable CHMOD 777
$upload_dir = "images/";
//100kb - What size do you want to allow to be uploaded
$max_size = 100000;

if(is_uploaded_file($_FILES['image']['tmp_name']))
{
  $size = $_FILES['image']['size'];

  if($size > $max_size)
  {
    echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
    exit();
  }
  $filename = $_FILES['image']['name'];

  if(file_exists($upload_dir.$filename))
  {
    echo "Error: The file named <b>$filename</b> already exists.";
    exit();
  }

  if(move_uploaded_file($_FILES['image']['tmp_name'], $upload_dir.$filename))
  {
    echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
    exit();
  }
  else
  {
    echo "There was a problem uploading your file. Please try again.";
    exit();
  }
}
}else{
?>
<html>
<head>
<title>Image upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="finshed" value="1">
Image: <input type="file" name="image" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html> 
<?php } ?>


iNod.
 
1
•••
iNod said:
Try this..


PHP:
<?php
if($_POST[finshed] == '1') {
//The directory to upload the images - Must be writable CHMOD 777
$upload_dir = "images/";
//100kb - What size do you want to allow to be uploaded
$max_size = 100000;

if(is_uploaded_file($_FILES['image']['tmp_name']))
{
  $size = $_FILES['image']['size'];

  if($size > $max_size)
  {
    echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
    exit();
  }
  $filename = $_FILES['image']['name'];

  if(file_exists($upload_dir.$filename))
  {
    echo "Error: The file named <b>$filename</b> already exists.";
    exit();
  }

  if(move_uploaded_file($_FILES['image']['tmp_name'], $upload_dir.$filename))
  {
    echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
    exit();
  }
  else
  {
    echo "There was a problem uploading your file. Please try again.";
    exit();
  }
}
}else{
?>
<html>
<head>
<title>Image upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="finshed" value="1">
Image: <input type="file" name="image" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html> 
<?php } ?>


iNod.

Seems to work great!:) And for once I found one that actually does work for me!:D Now maybe I can actually develop image-host.be lol!

BTW, Inod, is there anyway to get the image to pop up in a new window when you click on the link? I tried adding "target="_blank"" to it but it gave me some error.:(

EDIT: Never mind, I got it!:)
 
Last edited:
0
•••
wow, its a nice script! iNod continues to impress us all!... again!
 
0
•••
josephheskett said:
wow, its a nice script! iNod continues to impress us all!... again!


Why Thank You!

But I just edited SecondVersions Script :P
 
0
•••
0
•••
Is there any way to get around the php setting that doesn't allow uploads over a certain size to be done... or the max execution time?

I would like to be able to have files uploaded that are up to 5MB and I have encountered the above problems.
 
0
•••
0
•••
mind the last bracket in the second ini_set() tho for a sec. Good solution SecondVersion!
 
0
•••
Wow, thanks a ton. That helped a lot.

So then it appears as though the values are only for the script that is doing the uploading at the time? So that i don't have to set it back to what it was once the script is done executing?
 
0
•••
int_set function sets a variable for Apache for just this excution. It will revert back to the normal settings in php.ini after processing. If you have safe_mode on for php than it may cause some problems or errors. if you experience this ask your host to change save_mode to off.

iNod.
 
0
•••
Thank you all so much
 
0
•••
iNod said:
Try this..


PHP:
<?php
if($_POST[finshed] == '1') {
//The directory to upload the images - Must be writable CHMOD 777
$upload_dir = "images/";
//100kb - What size do you want to allow to be uploaded
$max_size = 100000;

if(is_uploaded_file($_FILES['image']['tmp_name']))
{
  $size = $_FILES['image']['size'];

  if($size > $max_size)
  {
    echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
    exit();
  }
  $filename = $_FILES['image']['name'];

  if(file_exists($upload_dir.$filename))
  {
    echo "Error: The file named <b>$filename</b> already exists.";
    exit();
  }

  if(move_uploaded_file($_FILES['image']['tmp_name'], $upload_dir.$filename))
  {
    echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
    exit();
  }
  else
  {
    echo "There was a problem uploading your file. Please try again.";
    exit();
  }
}
}else{
?>
<html>
<head>
<title>Image upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="finshed" value="1">
Image: <input type="file" name="image" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html> 
<?php } ?>


iNod.

CAN YOU CHANGE THAT TO FILE UPLOAD INSTED OF IMAGE UPLOAD PLEASE THANKS
 
0
•••
ewirehosting said:
CAN YOU CHANGE THAT TO FILE UPLOAD INSTED OF IMAGE UPLOAD PLEASE THANKS
Nothing needs to be changed really. Aside from the folder you want them uploaded to...

Anyway, you could do something like this:

PHP:
<?php

if($_POST['finshed'] == '1')
{
  //The directory to upload the images - Must be writable CHMOD 777
  $upload_dir = "files/";
  //100kb - What size do you want to allow to be uploaded
  $max_size = 100000;
  //Limit file types?
  $limit = "yes";
  //File types
  $allowed = array("txt", "zip", "rar"); //Etc

  if(is_uploaded_file($_FILES['file']['tmp_name']))
  {
    $size = $_FILES['file']['size'];
    if($size > $max_size)
    {
      echo "File Too Large. File must be no larger than <b>$max_size</b> bytes.";
      exit();
    }
    
    $filename = $_FILES['file']['name'];
    $ext = explode(".", $filename);
    $ext_check = trim($ext[1]);
    
    if($limit == "yes" && !in_array($ext_check, $allowed))
    {
      echo "File type not allowed.";
      exit();
    }
    if(file_exists($upload_dir.$filename))
    {
      echo "Error: The file named <b>$filename</b> already exists.";
      exit();
    }
    if(move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.$filename))
    {
      echo "Your image uploaded successfully! Can be found here: <a href='/".$upload_dir.$filename."'>".$upload_dir.$filename."</a>";
      exit();
    }
    else
    {
      echo "There was a problem uploading your file. Please try again.";
      exit();
    }
  }
}
else
{
?>
<html>
<head>
<title>File upload</title>
</head>

<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="finshed" value="1">
Image: <input type="file" name="file" size="20">ย 
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html>
<?php
}
?>
 
0
•••
Great code. One question for you. How can I limit what files can be chosen throught the dialog box when choosing a file (ie. 'mpg', 'mp3'). I know it currently will show an error after trying to upload an extension that isn't allowed, but how do I limit the dialog box.

Thanks
 
0
•••
JustinWI said:
Great code. One question for you. How can I limit what files can be chosen throught the dialog box when choosing a file (ie. 'mpg', 'mp3'). I know it currently will show an error after trying to upload an extension that isn't allowed, but how do I limit the dialog box.

Thanks


PHP doesn't have a way to do this sorry.

iNod
 
0
•••
Appraise.net
Unstoppable Domains
Domain Recover
DomainEasy โ€” Live Options
  • The sidebar remains visible by scrolling at a speed relative to the pageโ€™s height.
Back