Comments (9)
Can you provide some example code?
from guzzle.
require_once 'guzzle.phar';
$client = new \Guzzle\Http\Client();
$request = $client->post('post.php')
->addPostFiles(array(
'picture' => 'path/to/image.jpg'
));
$response = $request->send();
from guzzle.
A comment related to the full path: http://www.php.net/manual/en/function.curl-setopt.php#101231
And a comment about content-type: http://www.php.net/manual/en/function.curl-setopt.php#97591
from guzzle.
Interesting. You'll need to set the Content-Type yourself, but I'm not sure what's going on with the Content-Disposition header. I wonder if that's an issue with curl or an implementation detail in Guzzle. I'll need to find some time to investigate further.
from guzzle.
Well, using a normal browser, users don´t need to set the Content-Type for their upload files. So Guzzle should detect Content-Type too.
from guzzle.
There's some Content-Type guessing functionality that I suppose I could refactor so that it attempts to guess the content-type for POST uploads: https://github.com/guzzle/guzzle/blob/master/src/Guzzle/Http/EntityBody.php#L110
I'm not sure why you're getting a reference to a temp file. I'll look into that sometime this week. However, I don't think it would be an issue to send the full path to a file. The chdir
method in the comment you referenced would not work if you were submitting multiple files in different directories.
from guzzle.
Cool, it would be nice to have the auto-detecting.
According to http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html (19.5.1 Content-Disposition):
The receiving user agent SHOULD NOT respect any directory path information present in the filename-parm parameter, which is the only parameter believed to apply to HTTP implementations at this time. The filename SHOULD be treated as a terminal component only.
An example is
Content-Disposition: attachment; filename="fname.ext"
More here: http://www.ietf.org/rfc/rfc1806.txt (2.3 The Filename Parameter)
from guzzle.
I'm running into the same issue as @yosmanyga did originally. The filename is getting sent with it's full path to the server, and this is not correct. It should only display the file selected to be uploaded. Anyways, I'm sure I have the newest cost since I get this via composer. What gives?
from guzzle.
Found a way to workaround this with cURL. The master branch has a fix for this now and will strip out the leading slash on the filename portion of the Content-Disposition header.
from guzzle.
Related Issues (20)
- upgradin to PHP 8 and Guzzle 7. Breaks app HOT 1
- Remove content-type header when a redirect to GET: cURL does and Guzzle doesn't HOT 3
- Host Header HOT 5
- PHP Fatal Error when retrieving certain pages. HOT 4
- Pool promise wait() breaks with guzzlehttp/promises v2 HOT 9
- Intermittent 501 Not Implemented Error Due to Unexpected 'offsetGet' Method in Guzzle Requests HOT 4
- Using `"stream" => true` in options makes PSR7 responses read-once HOT 3
- [DOCS] In online documentation, the request option connect_timeout still says that the default value of 0 waits indefinitely, which was never true HOT 4
- No exception gets thrown on responses with status code >= 400 HOT 1
- http://www.guzzlephp.org displays Indonesian gambling site advert HOT 2
- Organization Information HOT 1
- Can GuzzleHttp be used to listen to a specific event to obtain request body data? HOT 3
- Unable to parse URI in Ipv6 HOT 14
- Document `GuzzleHttp\Client::__construct()` parameters at type level? HOT 3
- endless yield problem HOT 1
- Proxy chain support HOT 1
- Security vulnerabilities in guzzlehttp/psr7 dependency in v6.x HOT 3
- Mistake
- Custom Global Default Config HOT 2
- Supports json to array conversion HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from guzzle.