Register now and start sharing your code snippets.
-->
PHP file upload gotchas
PHP posted 9 months ago by christian
PHP file upload works in mysterious ways:
1 http://us3.php.net/manual/en/ini.core.php#ini.post-max-size 2 http://fi.php.net/manual/en/features.file-upload.php#73762 3 http://de3.php.net/manual/en/features.file-upload.errors.php
How to upload a file with PHP and lib_curl
PHP posted 9 months ago by christian
This is an example of how to upload a file from PHP to another server that may or may not be running PHP .
Note that using Pear’s HTTP _Request package is probably easier.
1 <?php 2 require_once('Var_Dump.php'); 3 Var_Dump::displayInit(array('display_mode' => 'HTML4_Text'), array('mode' => 'normal','offset' => 4)); 4 5 $url = 'www.aktagon.com/upload'; 6 $file = '/tmp/file_to_upload'; 7 $post_data = array(); 8 9 $post_data['username'] = ''; 10 $post_data['password'] = ''; 11 $post_data['file'] = "@$file"; 12 13 $ch = curl_init(); 14 15 curl_setopt($ch, CURLOPT_URL, $url); 16 curl_setopt($ch, CURLOPT_HTTPHEADER, array( 17 # 'Cookie: xxxx', 18 # 'Content-Type: xxxx' 19 )); 20 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 21 curl_setopt($ch, CURLOPT_POST, true); 22 #curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888'); 23 24 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 25 26 $response = curl_exec($ch); 27 $info = curl_getinfo($ch); 28 $http_code = $info['http_code']; 29 $speed = round($info['speed_upload'] / 1024); 30 $size = round($info['size_upload'] / 1024); 31 32 if($http_code != 200) 33 { 34 echo "Upload failed with HTTP code $http_code. Uploaded $size kilobytes with $speed kilobytes/s.<br/>"; 35 echo "<h1>Response</h1><pre>$response</pre><h1>Debug information</h1>"; 36 37 Var_Dump::display($info); 38 } 39 else 40 { 41 echo "Uploaded successful. Uploaded $size kilobytes with $speed kilobytes / s.<br/>"; 42 echo "<h1>Response</h1><pre>$response</pre>"; 43 } 44 curl_close($ch); 45 ?> 46
You can remove the Var_Dump code (Pear module), if you haven’t installed it, or don’t need it.