...

View Full Version : FTP upload MP3 via PHP script problem



charbsk
08-13-2007, 07:09 PM
I made a PHP script that allows me to upload files to FTP, I can upload images and documents with no problems, but when I go to upload an MP3, it uploads the file but has a size of 0KB on the server. I set the Max upload limit to 10MB and I'm uploading a 4MB MP3 file. Any help would be appreciated.

PHP Code:


<?php

// FTP Configuration
$FTP_User = "$username";
$FTP_Pass = "$password";
$FTP_Host = "###";
$FTP_Root = "$dir";

// If the form was submitted
if (isset($action) && $action == "submit") {

if ($_FILES['File_1']['size'] > $MAX_FILE_SIZE)
{
echo "Error: $Filename exceeds upload limit";
exit;
}

echo $_FILES['File_1']['size'];
echo $MAX_FILE_SIZE;

if ($dir == "-1")
{
echo "Error: Please choose a File Type to upload";
exit;
}

// Connect to the ftp address
$Connect = ftp_connect($FTP_Host);

if (!$Connect)
{
echo "Error: Could not connect to ftp server<br>";
exit;
}

echo "Connected to $FTP_Host<br>";

// Login
$login = ftp_login($Connect, $FTP_User, $FTP_Pass);

//Turns passive mode on
$passive = ftp_pasv ($Connect, true );

echo "Current directory is now: " . ftp_pwd($Connect) . "<br>";

if (ftp_chdir($Connect, "$FTP_Root"))
{
echo "Current directory is now: " . ftp_pwd($Connect) . "<br>";
} else echo "Cannot change directory";

$contents = ftp_nlist($Connect, ".");

// output $contents
print_r($contents);

// check upload status
if (!passive){
echo "Failed to enter passive mode.<br>";
}
else {
echo "Entered passive mode.<br>";
}

if (!$login)
{
echo "Error: Could not log on as $FTP_User<br>";
ftp_quit($Connect);
exit;
}

echo "Logged in as $FTP_User<br>";

// Set the filename to be uploaded
$Filename = $_FILES['File_1']['name'];
$myFile = $_FILES['File_1'];

if (file_exists($Filename))
{
echo "The file $Filename exists<BR>";
}
else
{
echo "The file $Filename does not exist<BR>";
}

$destination_file = $FTP_ROOT.$_FILES['File_1']['name'];

// Set the local resource (the file that will be uploaded)
$file = $myFile['tmp_name'];

// If the file was successfully uploaded
$upload = ftp_put($Connect, $destination_file, $file, FTP_BINARY);

if (!$upload)
{
// Show success message
echo "There was a problem uploading $destination_file";
}
else
{
// Else show error message
echo "Successfully uploaded $Filename";

}
ftp_close($Connect);
}

?>

Form Code:


<html>
<head>
<title> PHP FTP Upload Test </title>
</head>
<body>
<table>
<form method="post" action="?action=submit" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<tr>
<td>Username:</td>
<td><input type="text" name="username" size="30"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" size="30"></td>
</tr>
<tr>
<td>File Type:</td>
<td><select name="dir">
<option value="-1">File Type</option>
<option value="/httpdocs/charbel/upload/">Image</option>
<option value="/httpdocs/charbel/upload/">PDF</option>
<option value="/httpdocs/charbel/upload/">MP3</option>
<option value="/httpdocs/charbel/upload/">Video</option>
</select>
</td>
</tr>
<tr>
<td>File:</td>
<td><input type="file" name="File_1" size="30"></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="Submit"></td>
</tr>
</form>
</table>
</body>
</html>

vinyl-junkie
08-13-2007, 07:47 PM
Are you sure that the server doesn't have a size limit restriction that you cannot override? You might want to check to see if this is the problem.

Spookster
08-13-2007, 07:52 PM
You also may want to check with your host to see if they allow uploading of mp3 files. It's possible they could block uploading of those files.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum