|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I can't figure out how to pass a c:\... filepath via curl for an RFC1867
multipart form upload in PHP 5.2.1. I'm using the following code to perform a programmatic file upload to the PHP server: $filepath='/home/user/testfile.txt'; $ch=curl_init('http://bucksvsbytes.com/upload.php'); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_POSTFIELDS,array('peru'=>' @'.$filepath)); curl_exec($ch); curl_close($ch); Works great if the file I want to upload is on the web server but it never is. The files I want are on the client computer, of course, e.g. c:\home\user\testfile.txt I've tried passing every variation of that path I can think of, e.g.: C:\home\user\testfile.txt C:\\home\\user\\testfile.txt C:/home/user/testfile.txt urlencode(...) utf8_encode(...) and nothing works. I either get the dreaded "failed creating formpost data" or the filepath shows up in $_POST and $_FILES is empty. The listed formats don't work with fopen() either. I've searched dozens of web examples but I can't get it. ! For that matter, is there a better approach than curl for programmed uploads of client computer files to the PHP server? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Hello,
on 01/05/2008 02:18 AM John Gunther said the following: > I can't figure out how to pass a c:\... filepath via curl for an RFC1867 > multipart form upload in PHP 5.2.1. > > I'm using the following code to perform a programmatic file upload to > the PHP server: > > $filepath='/home/user/testfile.txt'; > $ch=curl_init('http://bucksvsbytes.com/upload.php'); > curl_setopt($ch,CURLOPT_POST,true); > curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); > curl_setopt($ch,CURLOPT_POSTFIELDS,array('peru'=>' @'.$filepath)); > curl_exec($ch); > curl_close($ch); > > Works great if the file I want to upload is on the web server but it > never is. The files I want are on the client computer, of course, e.g. > c:\home\user\testfile.txt > > I've tried passing every variation of that path I can think of, e.g.: > > C:\home\user\testfile.txt > C:\\home\\user\\testfile.txt > C:/home/user/testfile.txt > urlencode(...) > utf8_encode(...) > > and nothing works. I either get the dreaded "failed creating formpost > data" or the filepath shows up in $_POST and $_FILES is empty. The > listed formats don't work with fopen() either. > > I've searched dozens of web examples but I can't get it. ! > > For that matter, is there a better approach than curl for programmed > uploads of client computer files to the PHP server? When I use Curl I prefer composing a RAW HTTP request because I am sure it will work as intended. Whenever possible I prefer using fsockopen connections. In any case I use this HTTP client request class that wraps everything and supports form submission with file upload as you need: http://www.phpclasses.org/httpclient -- Regards, Manuel Lemos Metastorage - Data object relational mapping layer generator http://www.metastorage.net/ PHP Classes - Free ready to use OOP components written in PHP http://www.phpclasses.org/ |
|
![]() |
| Outils de la discussion | |
|
|