Jump to content

Coding Help - FTP


TapeGun007

Recommended Posts

I know this form doesn't really work, but the FTP part *should* work.  I select a file, and click upload, Chrome shows the file is uploading and gets to 100% then fails.  I'm getting "File Upload Failed!" on line 112 every time, but I can't seem to figure out why.  I'm hoping a pair of expert eyes can spot it quickly.

 

Upload A File:
<form enctype="multipart/form-data" action="File_Upload.php" method="POST">
<table>
<tr><td>Song Title:</td><td><input></input></td></tr>
<tr><td>Singer/Group:</td><td><input></input></td></tr>
<tr><td>Album Name:</td><td><input></input></td></tr>
<tr><td>Video Link:</td><td><input></input></td></tr>
<tr><td>Category:</td><td><input></input></td></tr>
<tr><td>Choose a file to upload:</td><td><input name="uploadedfile" type="file" /></td></tr>
<tr><td><input type="submit" value="Upload File" /></td></tr>
</table>
</form>
<?php
//**********************************************************************************************
echo "Please wait while we attempt to upload your file...<br><br>";
//**********************************************************************************************
$target_path = "temp_uploads/";
$flag = 0;

// Safety net, if this gets to 1 at any point in the process, we don't upload.
$filename = $_FILES['uploadedfile']['name'];
$filesize = $_FILES['uploadedfile']['size'];
$mimetype = $_FILES['uploadedfile']['type'];
$filename = htmlentities($filename);
$filesize = htmlentities($filesize);
$mimetype = htmlentities($mimetype);
$target_path = $target_path . basename( $filename );
if($filename != ""){
echo "Beginning upload process for file named: ".$filename."<br>";
echo "Filesize: ".$filesize."<br>";
echo "Type: ".$mimetype."<br><br>";
}

//First generate a MD5 hash of what the new file name will be
//Force a MP3 extention on the file we are uploading
$hashedfilename = md5($filename);
$hashedfilename = $hashedfilename.".mp3";

//Check for empty fileif($filename == ""){$error = "No File Exists!";
$flag = $flag + 1;

//Now we check that the file doesn't already exist.
$existname = "temp_uploads/".$hashedfilename;
if(file_exists($existname)){
if($flag == 0){
	$error = "Your file already exists on the server!  Please choose another file to upload or rename the file on your computer and try uploading it again!";
}
$flag = $flag + 1;
}

//Whitelisted files - Only allow files with MP3 extention onto server...
$whitelist = array(".mp3");
foreach ($whitelist as $ending) {
if(substr($filename, -(strlen($ending))) != $ending) {
	$error = "The file type or extention you are trying to upload is not allowed!  You can only upload MP3 files to the server!";
	$flag++;
}
}

//Now we check the filesize.  If it is too big or too small then we reject it
//MP3 files should be at least 1MB and no more than 25 MB
if($filesize > 26214400){
//File is too large
if($flag == 0){
	$error = "The file you are trying to upload is too large!  Your file can be up to 25 MB in size only.  Please upload a smaller MP3 file or encode your file with a lower bitrate.";
}
$flag = $flag + 1;
}
if($filesize < 1048600){
//File is too small
if($flag == 0){
	$error = "The file you are trying to upload is too small!Your file has been marked as suspicious because our system has determined that it is too small to be a valid MP3 file.Valid MP3 files must be bigger than 1 MB and smaller than 25 MB.";
}
$flag = $flag + 1;
}

//Check the mimetype of the file
if($mimetype != "audio/x-mp3" and $mimetype != "audio/mpeg"){
if($flag == 0){
	$error = "The file you are trying to upload does not contain expected data.Are you sure that the file is an MP3?";
}$flag = $flag + 1;
}

//Check that the file really is an MP3 file by reading the first few characters of the file
$f = @fopen($_FILES['uploadedfile']['tmp_name'],'r');
$s = @fread($f,3);
@fclose($f);
if($s != "ID3"){if($flag == 0){
$error = "The file you are attempting to upload does not appear to be a valid MP3 file.";}$flag++;
}

//All checks are done, actually move the file...
if($flag == 0){
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
	//Change the filename to MD5 hash and FORCE a MP3 extention.
	if(@file_exists("../music/".$filename)){
		//Rename the file to an MD5 version
		rename("uploads/".$filename, "uploads/".$hashedfilename);
		echo "The file ".basename( $filename )." has been uploaded.  Your file is <a href='uploads/$hashedfilename'>here</a>.";
	}
	else{
		echo "There was an error uploading the file, please try again! (1)";
	}
} 
else{
	echo "There was an error uploading the file, please try again! (2)";
}
}
else {
echo "File Upload Failed!<br>";
if($error != ""){
	echo $error;
}
}
?> 

Link to comment
https://forums.phpfreaks.com/topic/233048-coding-help-ftp/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.