Trying to make a place for people to upload files to this site. I get an error when i try it. Let me know what you think. Im using codeigniter by the way
===== HTML =====
<div id="upload">
<form enctype="multipart/form-data" action="<?=current_url()?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" />
<br />
<input type="submit" value="Upload" />
</form>
<p><?=$uploadResult?></p>
</div>
===== PHP =====
if ($this->input->post()) {
$target_path = "../../uploads/";
$target_path = $target_path .basename($_FILES['uploadedfile']['name']);
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
$uploadResult = "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
} else {
$uploadResult = "There was an error uploading the file, please try again!"; /* <---- Error I get */
}
} else {
$uploadResult = 'didnt work at all';
}
echo $uploadResult;
$this->data['uploadResult'] = $uploadResult;
===== ERROR =====
A PHP Error was encountered
Severity: Warning
Message: move_uploaded_file(../../uploads/notes_USH.odt): failed to open stream: No such file or directory
Filename: controllers/discovery.php
Line Number: 158
Ensure that the directory "../../uploads/" exists and you have write permission. PHP wont will create this for you.
Also, CodeIgnter have a class to handle the file upload (may be useful). You can see this in the docs.
Ok so this is a little late but i just remade the whole thing with codeigniters stuff and after some tinkering with it i got it to work.
Related
Hi trying to create a website that will let the user upload or take photo from the camera, and what I'm trying to use is the accept="image/*" capture that i found in the internet.
Here is my html file
<!DOCTYPE html>
<html>
<head>
<title>Take Photo</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploadedfile" accept="image/*" capture>
<input type="submit" value="Upload">
</form>
</body>
</html>
and here is my upload.php file
<?php
$target_path = "filecheck/check/takephoto/img/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
The problem is that i'm getting this error
Warning: move_uploaded_file(takephoto/img/panda-010.jpg): failed to open stream: No such file or directory in /home1/filecheck/check/takephoto/upload.php on line 6
Warning: move_uploaded_file(): Unable to move '/tmp/phpz3tKo0' to 'filecheck/check/takephoto/img/panda-010.jpg' in /home1/filecheck/check/takephoto/upload.php on line 6
There was an error uploading the file, please try again!
How can I get the image uploaded to img folder.
I'm new at this.
I am hosting a file upload script on an digital ocean server. I have copied line for line tutorials from all over the internet and changed my permissions using CHMOD 777. I cannot for the life of me figure out why the file won't upload.
PHP
<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
HTML
<form enctype="multipart/form-data" action="upload_manager.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
The file I'm trying to upload is only a few hundred KB and is a PNG. I have tried JPEG too.
When I print out the value of
$_FILES['uploadedfile']['tmp_name']
It is empty
The value of
$_FILES['uploadedfile']['name']
is the file name.
I had a look at my php ini and everything related to uploading files is correct.
What else can I try to get this to work?
UPDATE
I have now solved it, the problem was that I did not have the preciding '/' and I did not have the '/' at the end, here is the final syntax of the folder path: $folder = '/home/dl/www/uploads/';
UPDATE
I have updated the code so that is can output some more detailed debugging information, and this is what is output:
Warning: move_uploaded_file(home/dl/www/uploads/test.txt): failed to open stream: No such file or directory in /home/dl/public_html/file-upload/upload.php on line 9
I have the below script which is attempting to upload a selected file to a specified directory on my web server. However, it is not uploading; I have checked that the permissions on the directory is at '777' as per numerous tutorials have suggested, but it is still throwing the 'File is not uploaded' message.
Does anyone have any suggestions as to why this may not be working?
Thanks!
<?php
$folder = "/home/dl/www/uploads";
if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'])) {
if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder.$HTTP_POST_FILES['filename']['name'])) {
Echo "File uploaded";
} else {
Echo "File not moved to destination folder. Check permissions";
};
} else {
Echo "File is not uploaded.";
};
?>
The HTML form:
<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="upload.php" method="post"
enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
Try
$folder = "/home/dl/www/uploads/";
instead of
$folder = "/home/dl/www/uploads";
That is, a slash at the end.
I'm attempting to build my first form/file uploader (I'm a newb fyi).
I am testing on a local server on my mac, both the form, file handler, and the uploads folder are in the same file directory with one another.
When I select a file using the submit form (test file is 'testFilego.txt' and 3 bytes in size'), i get the following error: http://localhost/PhP_exercises/__tizag/280-php-fileupload-test.php?MAX_FILE_SIZE=2500000&uploadedfile=testFilego.txt. The submit form doesn't seem to connect to the handler (?). I thought the test file would appear in my uploads folder. Help.
This is the submit form:
<form>
<form enctype="multipart/form-data" action="280-php-uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="2500000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</form>
This is the file hander the form ought to be contacting
<?php
280-php-uploader.php<?php
//This is '280-php-uploader.php'
// Where the file is going to be placed
$target_path = "uploads/";
// Add the original filename to our target path.
//Result is "uploads/filename.extension"
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
As Marco Acierno observed, i'd posted the form inside a form and that seems to have caused the problem.
I am creating my own upload script to upload files to my webserver (like small flash videos). However, it does not seem to be working. However, I don't think it is PHP because uploading files to my server via Wordpress does work.
Here is the upload form:
<form enctype="multipart/form-data" action="upload.php" method="POST">
Video: <input name="vid" type="file" />
<br/>
Name: <input name="title" type="text" />
<br/>
Description:
<br/>
<br/>
<textarea name="desc">Your description here</textarea>
<br/>
<br/>
<input type="submit" value="Upload" />
</form>
Here is the upload PHP page:
<?php
$target = basename( $_FILES['uploaded']['name']) ;
$ok=1;
//check that $ok was not set to 0 by an error
if ($ok==0)
{
Echo "Sorry your file was not uploaded";
}
//If everything is ok we try to upload it
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
I have set the max upload size in php.ini to 100MB, however, the upload still fails. My php.ini file can be viewed here at pastebin. Also note that I have removed all verification from the upload script to see if it works.
From the looks of your code, you are uploading the file in the same directory as the running script. Are you sure you have write permission for the webserver in that directory?
Try uploading the file in your temp directory:
move_uploaded_file($_FILES['uploaded']['tmp_name'], sys_get_temp_dir().DIRECTORY_SEPARATOR.$target);
and see if it works
UPDATE
You are calling your input file "vid" but you are trying to access the input "uploaded".
replace all your $_FILES occurences with $_FILES['vid'][]...
And enable error reporting on your machine
How could you get the value of video from this:
$target = basename( $_FILES['uploaded']['name']) ;
WHile the 1st block contain the name of the file which was given to the html.
IN your case it is : Video: <input name="vid" type="file" /> Vid
SO use this on your code:
<?php
$target = basename( $_FILES['vid']['name']) ;