PDA

View Full Version : Let others upload files



drosen24
02-27-2006, 01:15 AM
Hi...i am trying to make a form on my site that will let others upload files onto my server. I am trying to have a picture contest that will let other submit pictures via my site. I want users to be able to search for file on their comp and then upload it to my server

i have no clue how to code this...any help is greatly appreciated.

thanks:cool:

ddadmin
02-27-2006, 01:07 PM
File uploading requires a server side script (be careful of security too). For PHP, here are a couple of good ones:

Ezupload (http://www.scriptscenter.com/ezupload/) (commercial)
Web 2.0 File Repository (http://labs.beffa.org/w2box/) (open source)

drosen24
02-27-2006, 01:50 PM
I will try this. thanks...
David

cadaver
02-28-2006, 02:08 AM
this is a php question but i'll answer. mods should carry this topic to correct place

make a php file like that:
-------------------------


<?
if(isset($_POST['action']) && $_POST['action']=="upload" && $_FILES['resim']['tmp_name'] && strstr($_FILES['resim']['type'],"jpeg"))
{
$path=$_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF']);
if(substr($path,strlen($path)-1)!="/") $path.="/";
move_uploaded_file($_FILES['resim']['tmp_name'],$path."/big/".$_FILES['resim']['name']);
}

?>
<form action="" enctype="multipart/form-data" method="post">
<input type="file" name="resim">
<input type="hidden" name="action" value="upload">
<input type="submit" value="Y&#252;kle">
</form>


in line 3 ['type'],"jpeg" allows only jpeg files to upload. if you delete only this part you should able to upload all files.

Elevation
03-02-2006, 10:48 PM
Is there a way for it to show a link to DL it once it is finished uploading.

djr33
03-03-2006, 04:02 AM
Yeah. You need to figure out where its saving stuff (I didn't look too closely at the script, but its not that hard to figure out... just find the path) and then use:
(Actually, on first glance, looks like the path is the root of your account... '/' which takes you there from any page. Just use that, or replace that in the code below)

(within the php)


...
echo '<br><a href="/'.filename($_FILES['resim']['tmp_name']).'>HERE'S THE LINK TEXT</a>.';
...


Reformat as you will.


Actually, I'm not positive on that code.
I'm just getting into this myself.
Check that out. Hope it helps.
It should at least point you in the right direction.

BTW, what I'm not sure about is getting the filename into the link. I think that will give it to you, but I don't completely understand the inner workings of the code that cadaver supplied.

Elevation
03-03-2006, 11:12 PM
aint working

http://inside-sports.net/upload.php

drosen24
03-04-2006, 12:28 AM
Hey everyone!!

I finally foudn the script i needed on hotscripts.com. It is ONE php file. On my server, i have to behind an ecripted password page. That I found on dynamic drive. (http://www.dynamicdrive.com/dynamicindex9/password.htm)

The file is very easy to use and lets you customize the file extentions to accept and the file sizes. It also creates a log of all files uploaded and a folder to store the files.

It wont let me attach a php file so here is the code



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

//Allowable file ext. names. you may add more extension names.
$FILE_EXTS = array('.zip','.jpg','.png','.gif','.doc','.pdf','.eml','.idx','.npc','.qdf','.qel','.qph','.qtx','.qsd');

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


//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 Extension Check
else if (!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)
$filelist .= " <a href='?del=$upload_dir".urlencode($file)."' 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>My Files</b>
<hr width=70%>
<?=$filelist?>
<hr width=70%>
<small><sup>Developed By
<a style="text-decoration:none" href="http://tech.tailoredweb.com">TailoredWeb.com</a>
</sup></small>
</center>

Good Luck:cool:

djr33
03-04-2006, 12:48 AM
BTW, what I'm not sure about is getting the filename into the link.

What I typed would work.... as long as the syntax was right for getting the filename. Sorry... I have no idea why it's not working... I haven't gotten into that stuff enough yet.

Elevation
03-04-2006, 04:11 AM
Hey everyone!!

I finally foudn the script i needed on hotscripts.com. It is ONE php file. On my server, i have to behind an ecripted password page. That I found on dynamic drive. (http://www.dynamicdrive.com/dynamicindex9/password.htm)

The file is very easy to use and lets you customize the file extentions to accept and the file sizes. It also creates a log of all files uploaded and a folder to store the files.

It wont let me attach a php file so here is the code


Good Luck:cool:

aint working for me, dont even get an area to upload the file

drosen24
03-07-2006, 01:15 PM
hey...i am on AIM....compuman624

Ill be able to help you there