Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
action_copy_web_to_file.php
Package: Generateur_v13.rar [view]
Upload User: feiyaoda
Upload Date: 2016-11-21
Package Size: 9556k
Code Size: 11k
Category:
WEB Mail
Development Platform:
PHP
- <?php
- $step = $_POST['step'];
- $url2get = $_POST['url2get'];
- if ($_POST['next_step_number'])
- {
- $next_step_number = $_POST['next_step_number'];
- $next_step_number++;
- }
- else $next_step_number = '1';
- if ($url2get)
- {
- // parsing and extracting all components
- $components = parse_url ($url2get);
- $url_filename = basename($components['path']);
- }
- function print_step($text)
- {
- global $next_step_number;
- echo "<span class="big_text">$next_step_number. $text</span><br /><br />n";
- $printed_steps ++;
- }
- switch ($step)
- {
- case 'do_copy':
- {
- set_time_limit(0);
- ignore_user_abort();
- $set_filename = $_POST['save_as_filename'];
- $scheme = $_POST['request_values']['scheme'];
- $host = $_POST['request_values']['host'];
- $port = $_POST['request_values']['port'];
- $user = $_POST['request_values']['user'];
- $pass = $_POST['request_values']['pass'];
- $path = $_POST['request_values']['path'];
- $query = $_POST['request_values']['query'];
- $fragment = $_POST['request_values']['fragment'];
- $built_url = $scheme.'://';
- if ($user || $pass) $built_url .= $user.':'.$pass.'@';
- $built_url .= $host;
- if ($port) $built_url .= ':'.$port;
- $built_url .= $path;
- if ($query) $built_url .= '?'.$query;
- if ($fragment) $built_url .= '#'.$fragment;
- if ($_POST['override_filename'])
- $destination = $target_folder.$set_filename;
- else
- $destination = $target_folder.$url_filename;
- // checking if destination already exists
- if (!$_POST['overwrite'] && is_file($destination))
- {
- echo "<span class="error_box">Destination <b>$destination</b> already exists!</span>n";
- echo "<form action=execute.php method=POST>n";
- migrate_across_request();
- echo "<input type=hidden name=step value=do_copy>n";
- echo "<input type=hidden name=next_step_number value=1>n";
- echo "<input type=hidden name="request_values[scheme]" value="".$_POST['request_values']['scheme']."">n";
- echo "<input type=hidden name="request_values[host]" value="".$_POST['request_values']['host']."">n";
- echo "<input type=hidden name="request_values[port]" value="".$_POST['request_values']['port']."">n";
- echo "<input type=hidden name="request_values[user]" value="".$_POST['request_values']['user']."">n";
- echo "<input type=hidden name="request_values[pass]" value="".$_POST['request_values']['pass']."">n";
- echo "<input type=hidden name="request_values[path]" value="".$_POST['request_values']['path']."">n";
- echo "<input type=hidden name="request_values[query]" value="".$_POST['request_values']['query']."">n";
- echo "<input type=hidden name="request_values[fragment]" value="".$_POST['request_values']['fragment']."">n";
- echo "<input type=hidden name="override_filename" value="".$_POST['override_filename']."">n";
- echo "<input type=hidden name="save_as_filename" value="".$_POST['save_as_filename']."">n";
- echo "<input type=hidden name="overwrite" value="1">n";
- echo "<input type=hidden name="binary_mode" value="".$_POST['binary_mode']."">n";
- echo "<input type=hidden name="buffer_size" value="".$_POST['buffer_size']."">n";
- echo "<input type="submit" name="submit" value="Overwrite">n";
- echo "</form>n";
- die();
- }
- echo "<table>n";
- echo "<tr><th>source</th><td>$built_url</td></tr>n";
- echo "<tr><th>destination</th><td>$destination</td></tr>n";
- echo "</table>n";
- // now opening files
- $begin_copy_time = getmicrotime();
- $binary = ($_POST['binary_mode']) ? 'b' : '';
- $fp_src = fopen($built_url,'r'.$binary);
- if (!$fp_src)
- die("<span class="error_box">impossible to open source in read mode!</span>n");
- $fp_dst = fopen($destination,'w'.$binary);
- if (!$fp_dst)
- die("<span class="error_box">impossible to open destination in write mode!</span>n");
- flush();// may not work, depends on buffering. see flush() in PHP manual for more informations
- // copying
- $buffer_size = $_POST['buffer_size'];
- if (false == settype($buffer_size,integer))
- die('invalid value for buffer size');
- $buffer_size = abs($buffer_size);
- while ($buffered = fread($fp_src,8048))
- {
- fwrite($fp_dst,$buffered,8048);
- }
- fclose($fp_src);
- fclose($fp_dst);
- $end_copy_time = getmicrotime();
- if (is_file($destination))
- {
- echo "<span class="success_box">copy may have worked. please check it's properties</span><br><br>n";
- $fsize = filesize($destination);
- $ttime = $end_copy_time - $begin_copy_time;
- echo "<table>n";
- echo "<tr><th>Destination file size</th><td>".FormatTailleFichier($fsize,'o')." ($fsize)</td></tr>n";
- echo "<tr><th>Total time</th><td>".timetohms($ttime)." (".number_format($ttime,2)." seconds)</td></tr>n";
- echo "<tr><th>Speed</th><td>".number_format(($fsize/$ttime),2)." octets/second</td></tr>n";
- echo "</table>n";
- }
- else
- {
- echo "<span class="error_box">Something has failed. destination file doesn't exists!</span>n";
- }
- break;
- }
- case 'show_parsed_url':
- {
- print_step('Confirm Parameters');
- echo "<form action=execute.php method=POST>n";
- migrate_across_request();
- echo "<input type=hidden name=step value=do_copy>n";
- echo "<input type=hidden name=next_step_number value=1>n";
- echo "<input type=hidden name=url2get value="".$_POST['url2get']."">n";
- echo "<table>n";
- /*
- echo "<tr><td colspan=2><i>Current Parameters</i></td></tr>n";
- echo "<tr><th>URL</th><td>$url2get</td></tr>n";
- echo "<tr><th>scheme</th><td>$components[scheme]</td></tr>n";
- echo "<tr><th>host</th><td>$components[host]</td></tr>n";
- echo "<tr><th>port</th><td>$components[port]</td></tr>n";
- echo "<tr><th>basic auth user</th><td>$components[user]</td></tr>n";
- echo "<tr><th>basic auth pass</th><td>$components[pass]</td></tr>n";
- echo "<tr><th>path</th><td>$components[path]</td></tr>n";
- echo "<tr><th>query</th><td>$components[query]</td></tr>n";
- echo "<tr><th>fragment</th><td>$components[fragment]</td></tr>n";
- echo "<tr><td colspan=2> </td></tr>n";
- */
- echo "<tr><td colspan=2><i>Overridde Parameters</i></td></tr>n";
- echo "<tr><th>scheme</th><td><input type=text name="request_values[scheme]" value="$components[scheme]" style="width:300px"></td></tr>n";
- echo "<tr><th>host</th><td><input type=text name="request_values[host]" value="$components[host]" style="width:300px"></td></tr>n";
- echo "<tr><th>port</th><td><input type=text name="request_values[port]" value="$components[port]" style="width:300px"></td></tr>n";
- echo "<tr><th>basic auth user</th><td><input type=text name="request_values[user]" value="$components[user]" style="width:300px"></td></tr>n";
- echo "<tr><th>basic auth pass</th><td><input type=text name="request_values[pass]" value="$components[pass]" style="width:300px"></td></tr>n";
- echo "<tr><th>path</th><td><input type=text name="request_values[path]" value="$components[path]" style="width:300px"></td></tr>n";
- echo "<tr><th>query</th><td><input type=text name="request_values[query]" value="$components[query]" style="width:300px"></td></tr>n";
- echo "<tr><th>fragment</th><td><input type=text name="request_values[fragment]" value="$components[fragment]" style="width:300px"></td></tr>n";
- echo "<tr><td colspan=2> </td></tr>n";
- echo "<tr><td colspan=2><i>Save As</i></td></tr>n";
- echo "<tr><th>override file name</th><td><input type=radio name="override_filename" value="1" checked>Yes <input type=radio name="override_filename" value="0" checked>No </td></tr>n";
- echo "<tr><th>file name</th><td><input type=text name="save_as_filename" value="".urldecode($url_filename)."" style="width:300px"></td></tr>n";
- echo "<tr><td colspan=2> </td></tr>n";
- echo "<tr><td colspan=2><i>Options</i></td></tr>n";
- echo "<tr><th>overwrite file</th><td><input type=radio name="overwrite" value="1" checked>Yes <input type=radio name="overwrite" value="0" checked>No </td></tr>n";
- echo "<tr><th>binary mode (Windows only)</th><td><input type=checkbox name="binary_mode" value="1" checked></td></tr>n";
- echo "<tr><th>copy buffer size</th><td><input type=text name="buffer_size" value="".(1024*32)."" style="width:300px"></td></tr>n";
- echo "<tr><td colspan=2> </td></tr>n";
- echo "<tr><td colspan=2 align=center><input type="submit" name="submit" value="Copy"></td></tr>n";
- echo "</table>n";
- echo "WARNING : next page could be long to show, depending of what you want to upload. But as far as it's permitted, set time limit is set to infinite and ignore_user_abort() is called. <b>So even if this page finished rendering, download may continue... It depends only of server configuration</b>n";
- break;
- }
- default:
- {
- print_step('Give URL of ressource you want to download');
- echo "<form action=execute.php method=POST>n";
- migrate_across_request();
- echo "<input type=hidden name=step value=show_parsed_url>n";
- echo "<input type=hidden name=next_step_number value=1>n";
- echo "<table>n";
- echo "<tr><th>Paste URL</th><td><input type="text" name="url2get" value="" style="width:300px"></td></tr>n";
- echo "<tr><td colspan=2 align=center><input type="submit" name="submit" value="Next"></td></tr>n";
- echo "</table>n";
- }
- }