I have a line of code that is supposed to copy image from one directory to another:
copy("http://localhost:8080/wordpress/wp-content/uploads/2015/06/uploaded_background.jpg","http://localhost:8080/wordpress/wp-content/themes/landing-page/img/desktop-background.jpg");
This is located in wordpress theme header.php file, however I am receiving an error message:
Warning:
copy(http://localhost:8080/wordpress/wp-content/themes/landing-page/img/desktop-background.jpg):
failed to open stream: HTTP wrapper does not support writeable
connections in
C:\wamp\www\wordpress\wp-content\themes\landing-page\header.php on
line 42
Line 42 is where my copy function line is located.
How can I solve this issue. Any suggestions or links would help a lot.
instead of using
copy("http://localhost:8080/wordpress/wp-content/uploads/2015/06/uploaded_background.jpg","http://localhost:8080/wordpress/wp-content/themes/landing-page/img/desktop-background.jpg");
try
copy`("/yourserverfolderpath/wordpress/wp-content/uploads/2015/06/uploaded_background.jpg","/yourserverfolderpath//wordpress/wp-content/themes/landing-page/img/desktop-background.jpg");`
yourserverfolderpath/ could be something like /home/user/abc/
see you ftp or cpanel for exact path
see this SO question as guideline
PS:
In case of local file, path would be something like D:\php\www\www\xml.php
as pointed by #dlegall in comments and as per documentation, First param of copy() can be a valid URL, see the docs here
You should use a local path as a 2nd parameter to copy(), since http protocol does not support file overwriting.
The destination path. If dest is a URL, the copy operation may fail if the wrapper does not support overwriting of existing files.
Source : http://php.net/manual/en/function.copy.php
Related
I'm trying to open a .p12 key file I placed in the same directory as functions.php. I tried using file_get_contents() to open the file, I also tried opening other random files and found that I could not.
PHP Warning: fopen(key.p12) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in path/wp-content/themes/theme-name/functions.php on line 26
I've been trying to get around this for hours.
Doesn't matter that functions.php and key.p12 are in the same directory. It all matters what the running script's working directory is. e.g.
/maindir/subdir/functions.php
file_get_contents('key.p12');
/maindir/script.php
include('subdir/functions.php');
In this case, the working directory will be maindir, and f_g_c() will be doing the equivalent of file_get_contents('/maindir/key.p12'), and fail, because the file is NOT in maindir.
Check getcwd() at the point you're doing the file_get_contents() call, and check what the working directory really is at that point. You'll probably find it's something completely different than the dir that functions.php lives in.
I am having problems with both is_file() and file_exists(), i am trying to verify a featured image exists in the wp uploads folder....both output sets of characters and create multiple errors for each thumbnail size
fopen(http://www.xxx.gf/wp-content/uploads/2014/09/1-150x150.jpg): failed to open stream: HTTP wrapper does not support writeable connections in /home/tserv/public_html/wp-includes/class-wp-image-editor.php on line 396
This is odd because i am passing a correct server path to both functions and the functions works for files outside the uploads folder. Also the filename is 1.jpg and its appending - 150x150 and a few other sizes which are the thumbnail sizes for wordpress.
update: server path is being passed: e.g. home/user/etc.., the error is saying fopen... but im not calling fopen directly nor passing a url to file_exists, is_file.
Since starting this i realize i'm mad for trying to verify it like this when i can check it using wp_functions but i would like to figure out why this is happening!
php code
if($x= is_file($upload_path.$filename) )
server- linux debian wheezy vps
open_basedir= None
safemode- off
folder permissions - 777 (temp)
You can't open the file using fopen using http and expect to write to the file. You will want to use fopen and specify the second option as "r" for read only or you can keep using this code but actually access it using the servers path and not http:// . You can also use file get contents.
try using http://codex.wordpress.org/Function_Reference/wp_upload_dir when accessing the upload
$upload_dir = wp_upload_dir(); // Array of key => value pairs
//base dir
$base_dir = $upload_dir['basedir'];
I am new to open cart. I have uploaded a store from local to live but it says the following error
Notice: Error: Could not load language english! in /home7/neotjans/public_html/EBook/system/library/language.php on line 39
I have checked and uploaded the english.php file to catalog/language/english as it was mentioned in another tutorial but the error is still there.
I had also the same problem. You are just missing the language file in catalog/language/english/english.php. Grab it from the default file and upload it back. It will solve the problem.
If this doesn't work for you then follow the second method here
Copy web_payment_software.php file from admin\language\english\payment
Paste to your language folder. Sample: admin\language\vietnamese\payment
Note: web_payment_software.php in folder "admin\language\english\payment"of OpenCart 1.5.1.3 version. Download full package to copy it!
I'm using readfile() in a php download script.
When I try to download a 9gb sized file, I get the following error:
function.readfile</a>]: failed to open stream: Value too large for defined data type in path of my file
Is it possible to fix it or do I have to move those files to the public_html directory and link them directly?
you can hack a way though. If you are on a unix environ, you can do
passthru('cat $filename');
as long as you don't need to write
You most likely need to re-compile php with CFLAGS="-D_FILE_OFFSET_BITS=64" so that PHP is able to handle large files. There's comment about that on the fopen documentation page.
Some additional reading:
http://en.wikipedia.org/wiki/Large_file_support
Althought you might not be using SUSE, still some interesting information: http://www.suse.de/~aj/linux_lfs.html
I'm going through the O'Reilly book Learning PHP & MySQL 2nd ed. by Michele Davis & Jon Phillips.
I'm stuck on example 11-28. The goal is to upload a picture and move it from /tmp to an uploads folder if it meets certain conditions: file size, type, and whether or not it was uploaded. This is being stored on my home Ubuntu server.
The form is here, and the code is here. Having a hard time getting it to show up.
When I hit the submit button w/o there being a file in the file box, I get the following warning:
Warning: unlink() [function.unlink]: No such file or directory in /home/luna/public_html/learn_php/up_urs.php on line 10
When I submit a file bigger than maxsize I get my error message:
Error. File must be less than 28480 bytes.
When I submit a file of the wrong type I get my error message:
You may only upload .gif & .jpg files.
When I submit a file that's the right type & size I get the following warning and my OK message:
Warning: move_uploaded_file(learn_php/uploads/) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/luna/public_html/learn_php/up_urs.php on line 21
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php4Mhykl' to 'learn_php/uploads/' in /home/luna/public_html/learn_php/up_urs.php on line 21
Thanks for your upload.
What I've tried:
I thought the problem was permissions but changing the directory learn_php to 777 made no difference so I changed it back to 755.
Changing the path from "uploads" to /home/luna/public_html/learn_php/uploads
Using getcwd() before & after the unlink & move_uploaded_file commands but that only told me I was in learn_php...
I tried uncommenting //print_r($_FILES); but that didn't show me anything after pressing submit.
Not sure what to look for now. Thanks for any help :)
The first error you see is because you are trying to unlink a file that doesn't exist on line 10. After you do the is_uploaded_file() check you should do a quick if ( isset($_FILES['upload_file']['tmp_name']) ) before doing the unlink.
The last two warnings are because it seems you don't have the upload directory already created. I don't think move_uploaded_file() will create it for you. So just create that directory and make sure that it has proper permissions to be written to.
As a beginner, I would also recommend checking the return values of these functions so that you don't return 'all good' when things have actually failed for some reason. Start putting in code like if ( !move_uploaded_file($_FILES['upload_file']['tmp_name'], "/path/to/learn_php/uploads/".$_files['upload_file']['name']) ) { $error = "Could not move the file to the uploads directory."; } else { print "All good, thanks for the upload."; exit(); }
See my answer here. That will give you a function to find the current root directory, which you can use as a prefix for file uploads and image manipulation.
Then, before running unlink, do an is_file() check first (and before moving it, you could run it to to ensure it exists in tmp if you are paranoid)
Rather than guessing your code path try working down from the top.
$uploadpath=$_SERVER['DOCUMENT_ROOT'].'\learn_php\uploads\';
I might be wrong, since you didnt post your source, but you are missing a slash in front of a directory, so it may be trying to store it in \learn_php\learn_php\uploads\ which wont exist, since the PHP file is already in that directory, so it is attempting to access a sub directory.
if all else fails, you will probably want to brush up on the docs.
http://php.net/manual/en/features.file-upload.php
Warning: move_uploaded_file()
[function.move-uploaded-file]: Unable
to move '/tmp/php4Mhykl' to
'learn_php/uploads/' in
/home/luna/public_html/learn_php/up_urs.php
on line 21
This is telling you that the folder you are trying to move to (learn_php/uploads/) doesn't exist. Double check that you've created that folder on your server.