I need to upload a file in a folder but the file never get in the folder. The name of the file is added correctly but no file in the folder. What is going wrong?
Php error: Undefined index: foto on line 12-16
$name= $_FILES["foto"]["name"];
$type= $_FILES["foto"]["type"];
$size= $_FILES["foto"]["size"];
$temp= $_FILES["foto"]["temp_name"];
$error= $_FILES["foto"]["error"];
if ($error > 0)
die("Error uploading file! code $error.");
else
{
if($type=="image/png" || $size > 2000000)//condition for the file
{
die("Format not allowed or file size too big!");
}
else
{
move_uploaded_file($temp,"assets/");
echo "Upload complete!";
}
}
HTML:
<form id="form" style="margin-left: 200px" action="addNewProduct.php" method="post"><br>
<br>
<br>
<div id="imageUpload">
<label for="foto">Foto</label>
<input type="file" name="foto" /><br>
</div>
<div id="infoForm">
<label for="productNaam">Productnaam</label>
<input type="text" name="productNaam"/><br>
<br>
<label for="beschrijving">Productbeschrijving</label>
<input type="text" name="productBeschrijving" /><br>
<br>
<label for="btw">BTW</label>
<input type="number" name="productBtw" /><br>
<br>
<label for="prijsinclbtw">PrijsInclBTW</label>
<input type="number" name="productPrijsInclBtw" /><br>
<br>
<br>
<br>
<input type="submit" name="submit" value="Add new Pen">
</div>
</form>
Your $_FILES["foto"]["temp_name"]; is incorrect, you should change it to $_FILES["foto"]["tmp_name"];
And your folder assets should exist in your root folder.
Your form should like this:
<form action="uploads.php" method="post" enctype="multipart/form-data">
<input type="file" name="foto">
<input type="submit" name="submit">
</form>
Please try this, hope this help you out : uploads.php
$type= $_FILES["foto"]["type"];
$size= $_FILES["foto"]["size"];
// $temp= $_FILES["foto"]["temp_name"];
$file_name = $_FILES["foto"]["name"];
$source = $_FILES['foto']['tmp_name'];
$dir = "./assets/";
$file = $dir . $file_name;
//$directory = "./assets/upload/$file_name";
if(!file_exists ($file ))
{
move_uploaded_file($source,$file );
exit();
}
else
{
echo "File exist";
}
When you upload files, form has to have enctype attribute.
<form enctype="multipart/form-data" id="form" style="margin-left: 200px" action="addNewProduct.php" method="post">
^^
Related
I'm trying to upload multiple images to server at one input(click on the button), and I have following code for index.html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id="contact" action="upload.php" method="post" enctype="multipart/form-data" >
<!-- image 1 -->
<label class="aa">
Upload an image
</label>
<div>
<input name="Field26" type="file" size="12" data-file-max-size="10" tabindex="1" required />
</div><br>
<!-- image 2 -->
<label class="bb">
Upload an image
</label>
<div>
<input name="Field33" type="file" size="12" data-file-max-size="10" tabindex="2" required />
</div>
</br>
<button name="submit" type="submit" value="Upload Image" data-submit="...Sending">Upload</button>
</form>
</div>
</body>
</html>
I have following upload.php code for uploading one image:
<?php
$dirCheck = 'images/$_POST[project]';
if (file_exists($dirCheck)){
echo "Sorry, directory already exists.";
$uploadOk = 0;
}else{
mkdir("images/$_POST[project]",0777,true);
echo "The new folder $_POST[project] has been created.</br>";
$uploadOk = 1;
}
$target_dir = "images/$_POST[project]/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ". ";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
How to change the code to upload multiple images? Thanks!
you have to use an array in name attribute instead:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileupload[]" /><br><br>
<input type="file" name="fileupload[]" /><br><br>
<input type="file" name="fileupload[]" /><br><br>
<input type="submit" name="submit" value="SAVE"/>
</form>
Or you can use multiple attribute:
<input type="file" name="fileupload[]" multiple />
Then in PHP you use this:
foreach($_FILES['fileupload'] as $file) {
....
}
I have a form where i want to upload files with multiple inputs.My form looks like:
<form action="" method="post">
<input type="file" name="tax" />
<input type="file" name="ta" />
<input type="submit" name="submit" />
</form>
I do not know how to process this form..
You form doesn't work until you don't include 'enctype="multipart/form-data"', because it is necessary to use input type file.
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="tax" />
<input type="file" name="ta" />
<input type="submit" name="submit" />
</form>
Now browse the file and submit the form. You will get all file data inside $_FILES. so to check what you get inside the file data, you can use :
echo '<pre>';
print_r($_FILES)
I'm not sure whether you have gone through the tutorials before, however below is the code which will help you to process it.
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input type="file" name="tax" />
<input type="file" name="ta" />
<input type="submit" name="submit" />
</form>
If you upload the file, you can get the files from,
$_FILES global array, i.e. $_FILES['tax'] and $_FILES['ta'].
More info can be found on php.net
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="tax" />
<input type="file" name="ta" />
<input type="submit" name="submit" />
</form>
<?php
//print_r($_POST);
if(isset($_POST['submit'])){
$name = $_FILES['tax']['name'];
$name1 = $_FILES['ta']['name'];
$temp_name = $_FILES['tax']['tmp_name'];
$temp_name1 = $_FILES['ta']['tmp_name'];
var_dump($_FILES);
if(isset($name)){
if(!empty($name)){
var_dump($_FILES);
$location = 'images/'.$name;
if(move_uploaded_file($temp_name, $location)){
echo 'File uploaded successfully';
}
}
} else {
echo 'You should select a file to upload !!';
}
if(isset($name1)){
if(!empty($name1)){
var_dump($_FILES);
$location = 'images/'.$name1;
if(move_uploaded_file($temp_name1, $location)){
echo 'File uploaded successfully';
}
}
} else {
echo 'You should select a file to upload !!';
}
}
?>
I'm programming a script that uploads mp3 to a folder in my server and adds the title, url and artist tot the 'audio' table.
but it dont work
PHP MySQL multiple mp3 upload in database
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
for($i=0;$i<count($_FILES["filUpload"]["name"]);$i++)
$target_dir = "/mounted-storage/home150/sub007/sc80538-VHHY/website.com/audio/files/";
$trackName = $_FILES['foto']['name'];
$titel = htmlspecialchars($_POST['titel']);
$artist = $_POST['artiest'];
{
if($_FILES["filUpload"]["name"][$i] != "")
{
if(move_uploaded_file($_FILES["filUpload"]["tmp_name"][$i],"myfile/".$_FILES["filUpload"]["name"][$i]))
{
//*** Insert Record ***//
mysql_query("INSERT INTO `audio` (titel, url, categorie) values ('".$titel."', 'http://website.com/audio/files/".$trackName."','".$artist."')");
}
}
}
echo "Copy/Upload Complete<br>"; ?>
and the HTML form :
<form name="form1" method="post" action="upload.php" enctype="multipart/form-data">
Track1 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
Track2 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
Track3 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
Track4 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
Track5 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
Track6 : <input name="titel" type="text" id="Titel" size="63" /><p>
<input type="file" name="filUpload[]"><br>
<br><br>
<select name="artiest">
<?php
$query = mysql_query("SELECT * FROM artiesten ORDER BY naam ASC");
while ($array = mysql_fetch_assoc($query)){
echo "<option value=\"". $array['naam'] ."\">". $array['naam']. "</option>";
}
?>
</select>
<input name="btnSubmit" type="submit" value="Submit">
</form>
this is just a sample code you have to fit in your website and add mysql connection ware i leave comment or just include external file
php code
if (isset($_POST["upload"])){
$userdir = "mp3/songs/";
for($i=0; $i<count($_FILES['mp3']['name']); $i++) {
$target_file = $userdir . basename($_FILES["mp3"]["name"][$i]);
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
if (!file_exists($userdir)){
mkdir($userdir, 0777, true);
}
if (move_uploaded_file($_FILES["mp3"]["tmp_name"][$i], $target_file)) {
// your mysql connect code or you have to be included external file with $connect variable or just rename it
$song = $_FILES["mp3"]["name"][0];
$sql = sprintf(
"INSERT INTO music (mp3) VALUES ('%s')",
mysqli_escape_string($connect, $song)
);
$res = mysqli_query($connect,$sql);
echo "The file has been uploaded.\n";
} else {
echo "Sorry, there was an error uploading your file.\n";
}
}
}
html code :
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="mp3[]" multiple="true" >
<input type="submit" name="upload" value="upload">
</form>
I've searched around but I can't find my issue. I have a simple script that uploads a file to the target-folder.
$target = "img/fotos-artikels/";
$target .= basename($_FILES["uploadBron"]["name"]);
if(move_uploaded_file($_FILES["uploadBron"]["tmpname"], $target)) {
echo "The file " . basename($_FILES["uploadBron"]["name"]) . " has been uploaded.";
} else {
echo " Sorry there was a problem";
}
And this is the form:
<form enctype="multipart/form-data" action="" method="post">
<label for="txtBronNaam">Naam:</label>
<input type="text" name="txtBronNaam" id="txtBronNaam" value="" /><br />
<label for="uploadBron">File:</label>
<input type="file" name="uploadBron" id="uploadBron" value="" /><br />
<input type="submit" name="" value="Voeg bron toe" />
</form>
Do I have to enable something in apache maybe?
tmpname should be tmp_name
I want to count set file upload. Here is my using code. Are there any better method to do this. Thanks.
<form action="index.php" method="post" enctype="multipart/form-data">
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<button name="submit" type="submit">Upload</button>
</form>
<?php
$img_error = '0';
$fill_img_count = '0';
if(isset($_POST['submit']))
{
$img_count = count($_FILES['new_image']);
echo "Total : ".$img_count."<br>";
for ($i=0 ; $i<=$img_count ; $i++)
{
if (isset($_FILES['new_image']) && !empty($_FILES['new_image']['name'][$i]))
{
$fill_img_count++;
}
}
echo "Set : ".$fill_img_count."<br>";
}
?>
$count_files = 0;
foreach ($_FILES['picture']['error'] as $item) {
if ($item != 4) {
$count_files++;
}
}
echo $count_files;
I'd recommend testing each ['error'] key against UPLOAD_ERR_OK.
You don't require to have name="new_image[]" as the name ... just new_image will suffice. If you post 1 or many, on the PHP side, you'll see $_FILES[]
Some useful links for you:
http://php.net/manual/en/reserved.variables.files.php
http://www.php.net/manual/en/features.file-upload.php
Some code:
if (empty($_FILES)) { echo "0 files uploaded"; }
else { echo count($_FILES) . " files uploaded"; }
Edit based on comment:
How to handle multiple file upload using PHP
From that post:
echo count($_FILES['file']['tmp_name']);
<?php
$count = 0;
foreach($_FILES['new_image']['error'] as $status){
if($status === UPLOAD_ERR_OK) {
$count++;
}
}
var_dump($count);
?>
<form action="test.php" method="post" enctype="multipart/form-data">
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<input name="new_image[]" type="file" />
<button name="submit" type="submit">Upload</button>
</form>