curl_file_upload.phpt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. --TEST--
  2. CURL file uploading
  3. --SKIPIF--
  4. <?php include 'skipif.inc'; ?>
  5. --FILE--
  6. <?php
  7. function testcurl($ch, $name, $mime = '', $postname = '')
  8. {
  9. if(!empty($postname)) {
  10. $file = new CurlFile($name, $mime, $postname);
  11. } else if(!empty($mime)) {
  12. $file = new CurlFile($name, $mime);
  13. } else {
  14. $file = new CurlFile($name);
  15. }
  16. curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file));
  17. var_dump(curl_exec($ch));
  18. }
  19. include 'server.inc';
  20. $host = curl_cli_server_start();
  21. $ch = curl_init();
  22. curl_setopt($ch, CURLOPT_URL, "{$host}/get.php?test=file");
  23. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  24. testcurl($ch, __DIR__ . '/curl_testdata1.txt');
  25. testcurl($ch, __DIR__ . '/curl_testdata1.txt', 'text/plain');
  26. testcurl($ch, __DIR__ . '/curl_testdata1.txt', '', 'foo.txt');
  27. testcurl($ch, __DIR__ . '/curl_testdata1.txt', 'text/plain', 'foo.txt');
  28. $file = new CurlFile(__DIR__ . '/curl_testdata1.txt');
  29. $file->setMimeType('text/plain');
  30. var_dump($file->getMimeType());
  31. var_dump($file->getFilename());
  32. curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file));
  33. var_dump(curl_exec($ch));
  34. $file = curl_file_create(__DIR__ . '/curl_testdata1.txt');
  35. $file->setPostFilename('foo.txt');
  36. var_dump($file->getPostFilename());
  37. curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file));
  38. var_dump(curl_exec($ch));
  39. curl_setopt($ch, CURLOPT_SAFE_UPLOAD, 0);
  40. $params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt');
  41. curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  42. var_dump(curl_exec($ch));
  43. curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
  44. $params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt');
  45. curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  46. var_dump(curl_exec($ch));
  47. curl_setopt($ch, CURLOPT_URL, "{$host}/get.php?test=post");
  48. $params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt');
  49. curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  50. var_dump(curl_exec($ch));
  51. curl_close($ch);
  52. ?>
  53. --EXPECTF--
  54. string(%d) "curl_testdata1.txt|application/octet-stream"
  55. string(%d) "curl_testdata1.txt|text/plain"
  56. string(%d) "foo.txt|application/octet-stream"
  57. string(%d) "foo.txt|text/plain"
  58. string(%d) "text/plain"
  59. string(%d) "%s/curl_testdata1.txt"
  60. string(%d) "curl_testdata1.txt|text/plain"
  61. string(%d) "foo.txt"
  62. string(%d) "foo.txt|application/octet-stream"
  63. Warning: curl_setopt(): Disabling safe uploads is no longer supported in %s on line %d
  64. string(0) ""
  65. string(0) ""
  66. string(%d) "array(1) {
  67. ["file"]=>
  68. string(%d) "@%s/curl_testdata1.txt"
  69. }
  70. "