Gå til innhold

Hvordan lagre i annen mappe?


Anbefalte innlegg

Heisann,

Jeg bruker dette her opplastingsskriptet, samt visningskriptet:

<?php
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
//   You may change maxsize, and allowable upload file types.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//Mmaximum file size. You may increase or decrease.
$MAX_SIZE = 2000000;
                           
//Allowable file Mime Types. Add more mime types if you want
$FILE_MIMES = array('image/jpeg','image/jpg','image/gif'
                  ,'image/png','application/msword');

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

//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 = "";
$upload_url = $url_dir."filer";
$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)
       $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;
}

?>

<body bgcolor="#FFFFFF">

<center>

<center>
  <font face="Arial"><b>Filer</b> ... </font>
  <hr width=70%>
  <?=$filelist?>
  <hr width=70%>
  <font size="1">Steffen N. Martinsen </font><font size="-2">©2006</font></center>
 <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
    <font face="Arial">Last opp ett bilde!</font> <input type="file" id="userfile" name="userfile">
    <input type="submit" name="upload" value="Last opp">
  </form>
  
  <br> </center>

Men, det har seg sånn at alle filene bare lagres i samme mappe som skriptet uten at jeg kan fatte å begripe hvorfor.. Så, hvorfor?

Kan noe endre skriptet sånn at filene lagres i en mappe som heter "Bilder" ?

 

Og forresten, filene vises ikke heller i den listen sånn som de skal, hvorfor ikke? Kan noe ordne det for meg?

 

Takk!

Endret av steffenz
Lenke til kommentar
Videoannonse
Annonse

Bare ett lite tips, ser at det $_REQUEST er brukt, jeg ville ha erstatet det med $_POST i stedet.

Edit: Fikk det til å fungere på min server hjemme. Mr.Bakke hadde rett, $upload_dir = "Bilder/"; er korrekt.

 

Har gjordt noen små endringer på scriptet, bl.a byttet ut $_REQUEST med $_POST og lagt in Bilder som upload_dir:

Klikk for å se/fjerne innholdet nedenfor
<?php

//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

// You may change maxsize, and allowable upload file types.

//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

//Mmaximum file size. You may increase or decrease.

$MAX_SIZE = 2000000;

 

//Allowable file Mime Types. Add more mime types if you want

$FILE_MIMES = array('image/jpeg','image/jpg','image/gif'

,'image/png','application/msword');

 

//Allowable file ext. names. you may add more extension names.

$FILE_EXTS = array('.zip','.jpg','.png','.gif');

 

//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 = "Bilder/";

$upload_url = $url_dir."filer";

$message ="";

 

/************************************************************

* Create Upload Directory

************************************************************/

if (!is_dir($upload_dir)) {

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 (isset($_POST['del']) AND $_POST['del'] && $DELETABLE) {

$resource = fopen("log.txt","a");

fwrite($resource,date("Ymd h:i:s")." DELETE - ".$_SERVER['REMOTE_ADDR'].".".$_POST['del']."\n");

fclose($resource);

 

if (strpos($_POST['del'],"/.")>0); //possible hacking

else if (strpos($_POST['del'],$upload_dir) === false); //possible hacking

else if (substr($_POST['del'],0,6)==$upload_dir) {

unlink($_POST['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)

$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);

echo $result;

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;

}

 

?>

 

<body bgcolor="#FFFFFF">

 

<center>

 

<center>

<font face="Arial"><b>Filer</b> ... </font>

<hr width=70%>

<?=$filelist?>

<hr width=70%>

<font size="1">Steffen N. Martinsen </font><font size="-2">©2006</font></center>

 <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">

<font face="Arial">Last opp ett bilde!</font> <input type="file" id="userfile" name="userfile">

<input type="submit" name="upload" value="Last opp">

</form>

 

<br> </center>

Endret av crowly
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...