/    Sign up×
Community /Pin to ProfileBookmark

How I can create a folder with PHP?

Hi,

I have a script that upload pictures and create one folder for them (files), it work perfect but how I can create a folder each time that I upload a picture? using as name for the folder the primary key (Im using the champ called ID with auto_increment).

Thank you any comment or help.

INDEX.PHP

[code=php]<?php
// Set up connection to MySQL
$host = “localhost”;
$user = “root”;
$pwd = “root”;
$dbConn = mysql_connect($host,$user,$pwd);
// Connect to newland_tours database
$database = “newland_tours”;
mysql_select_db($database);
$query_rs_news = “SELECT * FROM tbl_news ORDER BY Date”;
$rs_news = mysql_query($query_rs_news);
$row_rs_news = mysql_fetch_assoc($rs_news);
?>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>Untitled Document</title>

</head>

<body>
<?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 = 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],”files/”) === false); //possible hacking
else if (substr($_REQUEST[del],0,6)==”files/”) {
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$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;
}

?>
<form name=”upload” id=”upload” ENCTYPE=”multipart/form-data” method=”post” action=”insert_procesador.php”>
<table width=”485″ border=”0″ cellspacing=”0″ cellpadding=”5″>
<tr>
<td width=”156″>Title:</td>
<td width=”309″><input name=”Title” type=”text” id=”Title” /></td>
</tr>
<tr>
<td>Country:</td>
<td><input name=”Country” type=”text” id=”Country” /></td>
</tr>
<tr>
<td>City:</td>
<td><input name=”City” type=”text” id=”City” /></td>
</tr>
<tr>
<td>Date YYYY-MM-DD:</td>
<td><input name=”Date” type=”text” id=”Date” /></td>
</tr>
<tr>
<td>Language:</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>1 deutsch :
<input name=”1d” type=”checkbox” id=”1d” value=”checkbox” /></td>
<td><textarea name=”1deutsch” cols=”50″ rows=”10″ id=”1deutsch”></textarea></td>
</tr>
<tr>
<td>2 english :
<input name=”2e” type=”checkbox” id=”2e” value=”checkbox” /></td>
<td><textarea name=”2english” cols=”50″ rows=”10″ id=”2english”></textarea></td>
</tr>
<tr>
<td>3 espa&ntilde;ol :
<input name=”3es” type=”checkbox” id=”3es” value=”checkbox” /></td>
<td><textarea name=”3espanol” cols=”50″ rows=”10″ id=”3espanol”></textarea></td>
</tr>
<tr>
<td>4 fran&ccedil;aise :
<input name=”4f” type=”checkbox” id=”4f” value=”checkbox” /></td>
<td><textarea name=”4francaise” cols=”50″ rows=”10″ id=”4francaise”></textarea></td>
</tr>
<tr>
<td>5 italiano:
<input name=”5i” type=”checkbox” id=”5i” value=”checkbox” /></td>
<td><textarea name=”5italiano” cols=”50″ rows=”10″ id=”5italiano”></textarea></td>
</tr>
<tr>
<td>6 portugu&ecirc;s :
<input name=”6p” type=”checkbox” id=”6p” value=”checkbox” /></td>
<td><textarea name=”6portugues” cols=”50″ rows=”10″ id=”6portugues”></textarea></td>
</tr>
<tr>
<td>7 other :
<input name=”7o” type=”checkbox” id=”7o” value=”checkbox” /></td>
<td><textarea name=”7other” cols=”50″ rows=”10″ id=”7other”></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><font color=”red”>
<?=$_REQUEST[message]?>
</font></td>
</tr>
<tr>
<td>Pictures 1 </td>
<td><input type=”file” id=”userfile” name=”userfile” /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><?=$filelist?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Pictures 2 </td>
<td><input name=”Pictures2″ type=”text” id=”Pictures2″ /></td>
</tr>
<tr>
<td>Pictures 3 </td>
<td><input name=”Pictures3″ type=”text” id=”Pictures3″ /></td>
</tr>
<tr>
<td>Pictures 4 </td>
<td><input name=”Pictures4″ type=”text” id=”Pictures4″ /></td>
</tr>
<tr>
<td>Pictures 5 </td>
<td><input name=”Pictures5″ type=”text” id=”Pictures5″ /></td>
</tr>
<tr>
<td>Pictures 6 </td>
<td><input name=”Pictures6″ type=”text” id=”Pictures6″ /></td>
</tr>
<tr>
<td>Pictures 7 </td>
<td><input name=”Pictures7″ type=”text” id=”Pictures7″ /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=”submit” name=”upload” value=”upload” /></td>
</tr>
</table>
</form>

<center>
</center>

</body>
</html>

[/code]

to post a comment
PHP

11 Comments(s)

Copy linkTweet thisAlerts:
@_LOBO_authorMay 23.2005 — [B]insert_procesador.php[/B]

[code=php]
<?php
$host = "localhost";
$user = "root";
$pwd = "root";

$dbConn = mysql_connect($host,$user,$pwd);
$database = "newland_tours";
mysql_select_db($database, $dbConn);

$query_rs_insert_news = "INSERT INTO tbl_news (Title, Country, City, Date,
1d, 2e, 3es, 4f, 5i, 6p, 7o, deutch, english, espanol, francaise, italiano,
portugues, otro, Picture1, Picture2, Picture3, Picture4, Picture5, Picture6,
Picture7) VALUES ('".$_POST['Title']."', '".$_POST['Country']."',
'".$_POST['City']."', '".$_POST['Date']."', '".$_POST['1d']."',
'".$_POST['2e']."', '".$_POST['3es']."', '".$_POST['4f']."', '".$_POST['5i']."',
'".$_POST['6p']."', '".$_POST['7o']."', '".$_POST['1deutsch']."',
'".$_POST['2english']."', '".$_POST['3espanol']."',
'".$_POST['4francaise']."', '".$_POST['5italiano']."',
'".$_POST['6portugues']."', '".$_POST['7otro']."',
'".$_POST['userfile']."', '".$_POST['Pictures2']."',
'".$_POST['Pictures3']."', '".$_POST['Pictures4']."',
'".$_POST['Pictures5']."', '".$_POST['Pictures6']."',
'".$_POST['Pictures7']."')";
$rs_insert_news = @mysql_query($query_rs_insert_news);
if($rs_insert_news){
header("Location: admin_cp_master.php");
}else{
echo mysql_error();
};
?>
[/code]


[upl-file uuid=dce0b8bc-9e08-47f8-bdc5-317c5c9575d6 size=25kB]sql.txt[/upl-file]
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — [url=http://s7.yousendit.com/d.aspx?id=0MJE5S1GP0ZQE1PQLOTGJCTZ12]On my code[/url] I can get the ID champ (MYSQL) make an addition +1. something that should be importat becouse I need to use this number to create the folder where I will send my picture, but Im lost how to continued from here.
Copy linkTweet thisAlerts:
@DaiWelshMay 24.2005 — you can gett he id of the just inserted record with

$newid = mysql_insert_id();


then instead of using the same upload folder each time you use the id as part of the folder name e.g. in your original code in place of

$upload_dir = "files/";

use

$upload_dir = "files".$newid."/";

HTH,

Dai
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — A big THANK YOU! fro stop here ?

ok

this is what I did but Im still having problems:

I just try to creat one folder usind the ID from mysql.

[code=php]//Connetion to DB
mysql_select_db($database_conn_newland, $conn_newland);
$query_Llamar_ID = "SELECT ID FROM tbl_news ORDER BY ID DESC";
$Llamar_ID = mysql_query($query_Llamar_ID, $conn_newland) or die(mysql_error());
$row_Llamar_ID = mysql_fetch_assoc($Llamar_ID);
$totalRows_Llamar_ID = mysql_num_rows($Llamar_ID);

//
//Create the folder
//
$itemCount = $row_Recordset1['ID'] ;
$newDir = "./" . $itemCount;
mkdir($newDir);[/code]
Copy linkTweet thisAlerts:
@DaiWelshMay 24.2005 — A couple of problems I can see.

Firstly you are using the wrong variable name ($row_Recordset1 compared with $row_Llamar_ID).

Secondly your method for getting the id to use is flawed as it does not allow for deletions. To get the last id inserted use the function I used: mysql_insert_id(). When used right after an insert on a table with an auto_increment field this will bring back the value that was assigned to the auto_increment field. This is both simpler and a lot more reliable than the method you are trying to use.
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — so it should be like this?:

$itemCount = $row_Llamar_ID['ID'] ;

becouse Im getting an error:


Parse error: syntax error, unexpected T_VARIABLE in e:wampwwwDynamicadmin3insert_procesador.php on line 15
Copy linkTweet thisAlerts:
@DaiWelshMay 24.2005 — It might help if you showed the code, as I have no idea what error might exist on line 15 otherwise... ?
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — Im sorry :p

[code=php]
<?php require_once('../../Connections/conn_newland.php'); ?>
<?php

//Conecion a la DB
mysql_select_db($database_conn_newland, $conn_newland);
$query_Llamar_ID = "SELECT ID FROM tbl_news ORDER BY ID DESC";
$Llamar_ID = mysql_query($query_Llamar_ID, $conn_newland) or die(mysql_error());
$row_Llamar_ID = mysql_fetch_assoc($Llamar_ID);
$totalRows_Llamar_ID = mysql_num_rows($Llamar_ID);

//
//Crea el folder
//
$itemCount = $row_Llamar_ID['ID'] ;
$newDir = "./" . $itemCount;
mkdir($newDir);


//
//Hace el upload
//
$extension = explode(".",$_FILES['archivo']['tmp_name']);
echo $extension;
$num = count($extension)-1;

if(($_FILES['archivo']['type'] == "image/pjpeg") or ($_FILES['archivo']['type']== "image/gif")) {

if(!move_uploaded_file($_FILES['archivo']['tmp_name'], "files/".$_FILES['archivo']['name'])) {
echo "error al copiar el archivo";
}
else {
echo "el archivo se ha subido con exito";
echo $_FILES['archivo']['name'];
}
}
else {
echo "el formato de archivo no es valido, solo se admiten imagenes gif o jpg";
}
?>
<?php
$host = "localhost";
$user = "root";
$pwd = "root";

$dbConn = mysql_connect($host,$user,$pwd);
$database = "newland_tours";
mysql_select_db($database, $dbConn);

$query_rs_insert_news = "INSERT INTO tbl_news (Title, Country, City, Date,
1d, 2e, 3es, 4f, 5i, 6p, 7o, deutch, english, espanol, francaise, italiano,
portugues, otro, Picture1, Picture2, Picture3, Picture4, Picture5, Picture6,
Picture7) VALUES ('".$_POST['Title']."', '".$_POST['Country']."',
'".$_POST['City']."', '".$_POST['Date']."', '".$file_name."',
'".$_POST['2e']."', '".$_POST['3es']."', '".$_POST['4f']."', '".$_POST['5i']."',
'".$_POST['6p']."', '".$_POST['7o']."', '".$_POST['1deutsch']."',
'".$_POST['2english']."', '".$_POST['3espanol']."',
'".$_POST['4francaise']."', '".$_POST['5italiano']."',
'".$_POST['6portugues']."', '".$_POST['7otro']."',
'".$_POST['Pictures1']."', '".$_POST['Pictures2']."',
'".$_POST['Pictures3']."', '".$_POST['Pictures4']."',
'".$_POST['Pictures5']."', '".$_POST['Pictures6']."',
'".$_POST['Pictures7']."')";
$rs_insert_news = @mysql_query($query_rs_insert_news);
if($rs_insert_news){
echo "hola".$_FILES['uno']['name'];
}else{
echo mysql_error();
};

mysql_free_result($Llamar_ID);
?>
[/code]
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — wait it work now ?, thank you! but how I send the picture to the folder that I create ?

thank you for your big help
Copy linkTweet thisAlerts:
@DaiWelshMay 24.2005 — Change this line

if(!move_uploaded_file($_FILES['archivo']['tmp_name'], "files/".$_FILES['archivo']['name']))

to

if(!move_uploaded_file($_FILES['archivo']['tmp_name'], $newDir.$_FILES['archivo']['name'])) {

I would imagine.
Copy linkTweet thisAlerts:
@_LOBO_authorMay 24.2005 — It create the folder but there is no picture inside ? before the script send the picture to a folder called files.

[COLOR=Red]ps: I need to go but tommorrow I will be here. Thank you for your help[/COLOR]
×

Success!

Help @_LOBO_ spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.15,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...