QuizToon Posted May 27, 2009 Share Posted May 27, 2009 Hi All I want to upload some information and an image to a database, and then retrieve the information into a web page. Simple enough to do I know but I am struggling with some specifics. I am using the following to upload the information <?php $uploadDir = 'pictures/'; $fileUploaded = 0; // set a flag for use later // connection parameters should be in a seperate file! include('/path/to/site/folder/config.php'); $database = mysql_connect($hostname,$username,$password) or die("Could not connect to server"); mysql_select_db($table,$database) or die("Could not find table"); //$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); //mysql_select_db($dbname); //////////////////////////////////// if(isset($_POST['upload'])) { $id = $row['id']; $title = addslashes($_POST['title']); $detail = addslashes($_POST['detail']); // check if a file has been uploaded if($_FILES['userfile']['error'] != 4) { // error code 4 meaning that no image is present $fileUploaded = 1; $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; // the files will be saved in filePath $filePath = $uploadDir . $fileName; // move the files to the specified directory // if the upload directory is not writable or // something else went wrong $result will be false $result = move_uploaded_file($tmpName, $filePath); if (!$result) { echo "Error uploading file"; exit; } } else { // if no file added, generate empty variables so as not to break the query $fileName = ''; $fileSize = ''; $fileType = ''; $filePath = ''; } if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); $filePath = addslashes($filePath); } $query = "INSERT INTO lindablog (name, size, type, path, title, detail) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$filePath', '$title', '$detail')"; mysql_query($query) or die('Error, query failed : ' . mysql_error()); mysql_close($database); // if a file was uploaded, the fileUploaded variable will be set to 1 if($fileUploaded == 1) { echo "<br>File uploaded<br>"; // show the image after upload - comment this out if not required - good for checking though echo '<img src="'. $uploadDir .'/'.$_FILES['userfile']['name'][$i] .'" >'; $movedtolocation="pictures/".$_FILES['upload']['name'];# basically, take the location of wher the image is stored.. } } ?> <link href="styleadmin.css" rel="stylesheet" type="text/css"> <form action="" method="post" enctype="multipart/form-data" name="uploadform"> <table width="609" align="center" cellpadding="1" cellspacing="1"> <tr> <td colspan="4" align="center"> </td> </tr> <tr> <td width="165"><p class="subtitle">Main Title :</p></td> <td width="437" colspan="3"><p> <input name="title" type="text" size="35"> </td> </tr> <tr> <td width="165" valign="top"> </td> <td colspan="3"> </td> </tr> <tr> <td width="165" valign="top"><p class="subtitle"> Blog :</p> <p align="center" class="small"> </p></td> <td colspan="3"><textarea name="detail" id="detail" cols="50" rows="20"></textarea></td> </tr> <tr> <td width="165"><p class="subtitle">Select Picture:</p></td> <td colspan="3"><p align="center"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <input name="userfile" type="file" class="box" id="userfile" size="35"> <span class="small"> <br> Leave blank if no picture to upload</span><br> <br> </p></td> <tr> <td width="165"> </td> <td colspan="3"> </td> </tr> <tr><td colspan="4" align="center"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td> </tr> </table> </form> All of this works fine. Now the admin file which does all this is in a directory i want to password protect, when I do this it also protects the dirtectory to which the image was uploaded. How do I either upload the image toa directory outside the admin directory, or how can i call the picture without having to input the password, as when the webpage loads and it tries to display the image it asks for a password. If we can upload the image outside of the protected directory how do I reference it in the webpage. Hope you understand all this Thanks in advance Link to comment https://forums.phpfreaks.com/topic/159912-uploading-images-into-a-specific-area/ Share on other sites More sharing options...
jsschmitt Posted May 27, 2009 Share Posted May 27, 2009 If this .php file is in the admin folder, i assume the structure looks like this: admin > pictures You can use $uploadDir = '../pictures/'; and it will upload it into a folder along side admin: admin pictures As for calling the pictures in html... <img src="site.com/pictures/picturename.jpg> Link to comment https://forums.phpfreaks.com/topic/159912-uploading-images-into-a-specific-area/#findComment-843445 Share on other sites More sharing options...
QuizToon Posted May 27, 2009 Author Share Posted May 27, 2009 I tried that and it doesnt work, it comes up with a move error. I am guessing its something to do with the path it tries to insert into the database not matching the actual location, but I cant work it out. Link to comment https://forums.phpfreaks.com/topic/159912-uploading-images-into-a-specific-area/#findComment-843490 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.