NamePros
Welcome, Guest! Ready to make a name for yourself in the domain business? We welcome both the hobbyist and professional domainer to join the discussion as part of the NamePros community.

Click here to create your profile to start earning reputation for posting, and trader ratings for buying & selling in our free e-marketplace. Build your trader rating with each successful sale. Our system has tracked over 100,000 sales and counting!
FAQ & TOS Register Search Today's Posts Mark Forums Read

Go Back   NamePros.com > Website Development Discussion Forums > Programming
Reload this Page PHP file uploading

Programming PHP, Perl, Ruby on Rails, AJAX, HTML, XHTML, CSS, JavaScript, MySQL and any other coding topics.

Advanced Search


Closed Thread
 
LinkBack Thread Tools
Old 12-17-2005, 08:36 AM THREAD STARTER               #1 (permalink)
SQLdumpster.com
 
Encenta.com's Avatar
Join Date: Jun 2005
Location: West Sussex, UK
Posts: 573
Encenta.com has a spectacular aura aboutEncenta.com has a spectacular aura about
 




PHP file uploading


Hey, sorry to bother you guys. I'm trying to use PHP to upload music to my server. (it's currently set to image files because I have no audio files on my laptop and I need to test the script). However, I keep getting the error whenever I submit the form. It stores the data in the database but doesnt store the file on the server. And since adding the enctype to the form, all the $_POST variables are empty. $NP and reputation for anyone who can solve this problem or suggest a script which will enable me to upload a music file with another field for the title of the file.

PHP Code:
<?
session_start
();
if (!isset(
$_SESSION['logged_in'])) {
echo 
'<script>alert("You must be logged in to view this page.");</script>';
                echo 
'<script>history.back(1);</script>';
                exit;
                }
include(
"config.php");
include(
"includes/userinfo.php");
if (
$artist == "") {
echo 
"<p>You must be registered as an artist to view this page.</p> <p><a href='index.php'>Return</a></p>"; }

        
$pagetitle "Upload a file";

if (
$_POST['submit'])
{
$file=addslashes($_POST['userfile']);
$title=addslashes($_POST['title']);

if ( empty(
$file) || empty($title) )
{

echo 
'<script>alert("One or more fields were left empty, please try again.");</script>';
echo 
'<script>history.back(1);</script>';
exit;

}





$query "INSERT INTO files (id, title, file, artist, submit) VALUES 
('', '
$title', '$file', '$artist', '" $_SESSION['logged_in'] . "')";

$results mysql_query($query);
echo 
mysql_error();


################################################

$path "uploads/";
$max_size 200000;


if (
is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {}

if (
$HTTP_POST_FILES['userfile']['size']>$max_size) { echo "The file is too big<br>\n"; exit; }
if ((
$HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")) {}

if (
file_exists($path $HTTP_POST_FILES['userfile']['name'])) { echo "The file already exists<br>\n"; exit; }
????: NamePros.com http://www.namepros.com/programming/148878-php-file-uploading.html

$res copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
$HTTP_POST_FILES['userfile']['name']);

################################################




if ($results && $res)
{
include(
"head.php");
echo 
"<h1>Success</h1><p>The file was successfully uploaded.</p><p><a href='artistarea.php'>Return</a>";
include(
"foot.php");
}
else
{
include(
"head.php");
echo 
"<h1>Error</h1><p>There was an error uploading the file, please try again or <a href='contact.php'>contact</a> the administrator.</p>";
include(
"foot.php");
}

mysql_close();
}

else
{
include(
"head.php");
echo 
"
<h1>Upload a song/video</h1>
<form  method='post' action='upload.php'>
????: NamePros.com http://www.namepros.com/showthread.php?t=148878
<table width='447' border='0' cellspacing='0' cellpadding='0'>
  <tr>
    <td height='44'>File</td>
    <td><input type='file' name='userfile' class='inputbox'></td>
  </tr>
  <tr>
    <td height='48'>Title of song/video </td>
    <td><input type='text' name='title' class='inputbox'></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type='submit' name='submit' value='Submit'></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>


</form>

"
;
include(
"foot.php");
}
?>
Is the script at the moment

Thanks in advance.
__________________
Encenta - Amazon Associates CMS
Encenta.com is offline  
Old 12-17-2005, 12:42 PM   #2 (permalink)
NamePros Expert
 
Peter's Avatar
Join Date: Nov 2003
Location: Scotland
Posts: 5,069
Peter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond repute
 


Child Abuse Save The Children Save The Children Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009
what version of php are you using?
what error message do you get?
what is the chmod value of the folder in which you are moving the files too?
Have you ensured the tmp folder has the correct permissions ans is setup correctly in php?
Peter is offline  
Old 12-18-2005, 03:00 AM THREAD STARTER               #3 (permalink)
SQLdumpster.com
 
Encenta.com's Avatar
Join Date: Jun 2005
Location: West Sussex, UK
Posts: 573
Encenta.com has a spectacular aura aboutEncenta.com has a spectacular aura about
 




Originally Posted by filth
what version of php are you using?
what error message do you get?
what is the chmod value of the folder in which you are moving the files too?
Have you ensured the tmp folder has the correct permissions ans is setup correctly in php?
PHP Version 4.3.11

Error is the one in the PHP script - "There was an error uploading the file, please try again or contact the administrator."
????: NamePros.com http://www.namepros.com/showthread.php?t=148878

CHMOD - 0777

how do I check the temp folder?



Thanks filth.
__________________
Encenta - Amazon Associates CMS
Encenta.com is offline  
Old 12-18-2005, 07:02 AM   #4 (permalink)
NamePros Expert
 
Peter's Avatar
Join Date: Nov 2003
Location: Scotland
Posts: 5,069
Peter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond repute
 


Child Abuse Save The Children Save The Children Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009
in versions above 4.1 you should be using $_FILES instead of $HTTP_POST_FILES

try making path an absolute path on your server instead of relative to the script.

Also in the query:-

$query = "INSERT INTO files (id, title, file, artist, submit) VALUES
('', '$title', '$file', '$artist', '" . $_SESSION['logged_in'] . "')";

what are you trying to do? Are you actually trying to upload the file into the database or the name because that is not how you would go about inserting the name.

It would also be a better idea to insert the details into the database after the file has been moved, there is more potential to go wrong with copying the file than there is uploading data to the database.

Another note, have you checked the value of register globals as I have noticed you are using addslashes(). If register globals is turned on you could be causing problems with the script you should check the value of register globals THEn decide on how to treat the data.
Peter is offline  
Old 12-18-2005, 07:09 AM THREAD STARTER               #5 (permalink)
SQLdumpster.com
 
Encenta.com's Avatar
Join Date: Jun 2005
Location: West Sussex, UK
Posts: 573
Encenta.com has a spectacular aura aboutEncenta.com has a spectacular aura about
 




Originally Posted by filth
in versions above 4.1 you should be using $_FILES instead of $HTTP_POST_FILES

try making path an absolute path on your server instead of relative to the script.

Also in the query:-

$query = "INSERT INTO files (id, title, file, artist, submit) VALUES
('', '$title', '$file', '$artist', '" . $_SESSION['logged_in'] . "')";
????: NamePros.com http://www.namepros.com/showthread.php?t=148878

what are you trying to do? Are you actually trying to upload the file into the database or the name because that is not how you would go about inserting the name.
Well I've only just learnt PHP so I probably seem very stupid towards all this. The 'INSERT' statement just basically stores the details of the file and this works exactly how I want it to. The $_SESSION['logged_in'] is the username which the user logged in with so that i know who submitted the file.

I'll try using $_FILES like you said.

Thanks

EDIT: Actually on second thoughts - my max upload limit is 2mb so that's kinda destroyed my idea of music downloads. Thanks anyway filth
__________________
Encenta - Amazon Associates CMS
Last edited by Encenta.com; 12-18-2005 at 07:14 AM.
Encenta.com is offline  
Old 12-18-2005, 07:23 AM   #6 (permalink)
NamePros Expert
 
Peter's Avatar
Join Date: Nov 2003
Location: Scotland
Posts: 5,069
Peter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond repute
 


Child Abuse Save The Children Save The Children Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009
Depending on your host you may be able to increase that using htaccess
Peter is offline  
Old 12-18-2005, 01:18 PM   #7 (permalink)
Senior Member
 
Eric's Avatar
Join Date: Mar 2005
Posts: 4,948
Eric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatness
 

Member of the Month
MOTM September 2005
Save a Life Child Abuse 9/11/01 :: Never Forget Baby Health Marrow Donor Program AIDS/HIV Breast Cancer Animal Rescue Cystic Fibrosis Ethan Allen Fund Animal Cruelty Ethan Allen Fund Ethan Allen Fund Baby Health Cancer Alzheimer's Protect Our Planet Cancer Survivorship SIDS Child Abuse Diabetes Protect Our Planet Multiple Sclerosis Autism Adoption Special Olympics
Originally Posted by filth
Depending on your host you may be able to increase that using htaccess
Or...
PHP Code:
<?php
????: NamePros.com http://www.namepros.com/showthread.php?t=148878

ini_set
('upload_max_filesize''2M');

?>
2M(megabytes) is the default. Just change to whatever you need it to be. After script execution, it will be restored to the default value.
Eric is offline  
Old 12-18-2005, 01:25 PM   #8 (permalink)
NamePros Expert
 
Peter's Avatar
Join Date: Nov 2003
Location: Scotland
Posts: 5,069
Peter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond repute
 


Child Abuse Save The Children Save The Children Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009
will setting it in the script have any affect??

Although some directives like this can be set per script they do not work. For example register_globals, changing this in the script has no affect as what the server does has already taken place by the time the script has run, I beleive it may be the same for upload_max_filesize.
Peter is offline  
Old 12-18-2005, 01:25 PM   #9 (permalink)
Senior Member
 
Eric's Avatar
Join Date: Mar 2005
Posts: 4,948
Eric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatnessEric Has achieved greatness
 

Member of the Month
MOTM September 2005
Save a Life Child Abuse 9/11/01 :: Never Forget Baby Health Marrow Donor Program AIDS/HIV Breast Cancer Animal Rescue Cystic Fibrosis Ethan Allen Fund Animal Cruelty Ethan Allen Fund Ethan Allen Fund Baby Health Cancer Alzheimer's Protect Our Planet Cancer Survivorship SIDS Child Abuse Diabetes Protect Our Planet Multiple Sclerosis Autism Adoption Special Olympics
Also, you may have to change the post_max_size and/or memory_limit. They default to 8M.
PHP Code:
<?php

ini_set
('memory_limi''8M');
ini_set('post_max_size''8M');

?>
Plus....lol....max_execution_time which defaults to 30 seconds
PHP Code:
<?php

ini_set
('max_execution_time''30');
????: NamePros.com http://www.namepros.com/showthread.php?t=148878

?>
Most can be set at runtime..
Eric is offline  
Old 12-18-2005, 01:41 PM   #10 (permalink)
NamePros Expert
 
Peter's Avatar
Join Date: Nov 2003
Location: Scotland
Posts: 5,069
Peter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond reputePeter has a reputation beyond repute
 


Child Abuse Save The Children Save The Children Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009 Help The Homeless - Holiday 2009
just had a look at http://uk.php.net/manual/en/ini.php#ini.list and upload_max_filesize can only be changed in php.ini, .htaccess or httpd.conf.

The same goes for post_max_size
Peter is offline  
Closed Thread


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


Similar Threads
Thread Thread Starter Forum Replies Last Post
****HUGE List of FREE File/Image/Video Hosts!**** thetzfreak Free Resources 31 02-12-2006 07:06 AM
Great Scripts for Sale With Resale Rights! Zeeble Scripts For Sale 20 01-04-2006 02:39 AM
Googlism - What does google think of you? deadserious The Break Room 55 12-15-2005 10:09 AM
Tutorial: How to Install Apache2 MySQL and PHP on Windows deadserious Webmaster Tutorials 35 09-21-2005 10:46 PM

Liquid Web Smart Servers  
All times are GMT -7. The time now is 08:00 PM.

Managed Web Hosting by Liquid Web
Domain name forum recommended by Domaining.com Powered by: vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0 Ad Management plugin by RedTyger