TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 06-28-2010, 04:05 PM   #1 (permalink)
The Contributor
 
Tim Dobson's Avatar
 
Join Date: Feb 2010
Posts: 69
Thanks: 16
Tim Dobson is on a distinguished road
Default Upload file/Check if its already there?

Helloooooooooooooo.

Just need a bit of assistance with this.

Using the following script to upload a file how would i go about checking if the file is already on server and if it is bail out?

PHP Code:
<?php
   
// Configuration - Your Options
      
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // These will be the types of file that will pass the validation.
      
$max_filesize 524288// Maximum filesize in BYTES (currently 0.5MB).
      
$upload_path './files/'// The place the files will be uploaded to (currently a 'files' directory).
 
   
$filename $_FILES['userfile']['name']; // Get the name of the file (including file extension).
   
$ext substr($filenamestrpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename.
 
   // Check if the filetype is allowed, if not DIE and inform the user.
   
if(!in_array($ext,$allowed_filetypes))
      die(
'The file you attempted to upload is not allowed.');
 
   
// Now check the filesize, if it is too large then DIE and inform the user.
   
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
      die(
'The file you attempted to upload is too large.');
 
   
// Check if we can upload to the specified path, if not DIE and inform the user.
   
if(!is_writable($upload_path))
      die(
'You cannot upload to the specified directory, please CHMOD it to 777.');
 
   
// We'll start handling the upload in the next step
 
?>
<?php
   
// Configuration - Your Options
      
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // These will be the types of file that will pass the validation.
      
$max_filesize 524288// Maximum filesize in BYTES (currently 0.5MB).
      
$upload_path './files/'// The place the files will be uploaded to (currently a 'files' directory).
 
   
$filename $_FILES['userfile']['name']; // Get the name of the file (including file extension).
   
$ext substr($filenamestrpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename.
 
   // Check if the filetype is allowed, if not DIE and inform the user.
   
if(!in_array($ext,$allowed_filetypes))
      die(
'The file you attempted to upload is not allowed.');
 
   
// Now check the filesize, if it is too large then DIE and inform the user.
   
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
      die(
'The file you attempted to upload is too large.');
 
   
// Check if we can upload to the specified path, if not DIE and inform the user.
   
if(!is_writable($upload_path))
      die(
'You cannot upload to the specified directory, please CHMOD it to 777.');
 
   
// Upload the file to your specified path.
   
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path $filename))
         echo 
'Your file upload was successful, view the file <a href="' $upload_path $filename '" title="Your File">here</a>'// It worked.
      
else
         echo 
'There was an error during the file upload.  Please try again.'// It failed :(.
 
?>
Tim Dobson is offline  
Reply With Quote
Old 06-28-2010, 04:30 PM   #2 (permalink)
The Contributor
 
Tim Dobson's Avatar
 
Join Date: Feb 2010
Posts: 69
Thanks: 16
Tim Dobson is on a distinguished road
Default

lol nevermind i got it i just droped

PHP Code:
if (file_exists($checkfile)) {
    die(
'The file $checkfile exists');
} else {
    

in to the code before the upload took place
Tim Dobson is offline  
Reply With Quote
Old 06-28-2010, 05:41 PM   #3 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

I don't think you're being pedantic enough here. I think what you need to do is write an asynchronous call to a remote script on another server that can in turn tunnel back over ssh and trigger a setuid root script that will grep your entire filesystem for any matches or even just possible matches.

Otherwise, you could wind up with a duplicate file. :)
delayedinsanity is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Trying to upload files with PHP and Prototype AJAX EyeDentify General 6 01-19-2009 10:04 PM
upload file galleeandfarel Absolute Beginners 2 07-11-2008 11:23 AM
Preview: Upcoming Image Upload Script + Member System Gareth Show Off 2 07-10-2008 06:56 PM
PHP.ini change upload limit killer-kurt Absolute Beginners 14 04-28-2008 11:32 AM
How to improve my Upload Function? Gareth General 2 01-31-2008 08:33 PM


All times are GMT. The time now is 12:49 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design