[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1447
  • Last Modified:

PHP Upload File by URL method

Hi all,

I'd like to know, if is possible to upload files by passing the path of the file by URL example:

http://www.mysite.com/uploader.php?filename=C:\FilePath\Filename.ext

Then, the uploader.php do the entire process to upload that file...

Is it possible?

My software generate a error report, with some asm info about the error and some other info about the hardware and etc... then like Windows Reporting Tool does, the user will can send the error to us... the error file is called dbghelper.dat and i want to it by php since it use port 80 and firewall will not block it, like some firewalls is configured to do on SMTP Port, FTP Port :(

Thanks in advance :D
and sorry for bad english :(

Best Regards,
Carlos
0
cebasso
Asked:
cebasso
  • 2
  • 2
  • 2
1 Solution
 
Ray PaseurCommented:
I do not think you can do this -- the $_FILES array needs to be populated for file uploads and it cannot be populated via GET in the URL - it would be a security exposure.
0
 
Loganathan NatarajanLAMP DeveloperCommented:
You cannot copy a file to the server through URL because the file stream could not parsed through the HTTP ... you need to use <FORM>
0
 
cebassoAuthor Commented:
Humm ok
Anyway, the is a method to to something like that in the Code Snippet.. ?!
By passing the file path by URL, do a submit automatically....
Best Regards!!
Carlos

/* upload.php */
 
<?
 
$POST_URL = "uploaded.php";
$FILENAME = $_GET["filename"];
 
?>
 
<html>
<head>
</head>
<body>
 
<form name="return" action="<? echo $POST_URL?>" method="post" enctype="multipart/form-data"> 
<input type="hidden" name="filename" value="<? echo $FILENAME?>"> 
</form>
 
<script language="JavaScript" type="text/javascript"> 
document.return.submit(); 
</script>
 
</body>
</html>
 
 
/* uploader.php */
 
<?
if (!empty($filename) and is_file($filename)) {
$path="/home/cebasso/public_html/upload/";
$path=$path.$filename;
 
if ((eregi(".gif$", $filename_name)) || (eregi(".jpg$", $filename_name))){
copy($filename, $path);
print "<h1><center>Sucess!</center></h1>";
}
else{
print "<h1><center>Error!</center></h1>";
}
}
?>

Open in new window

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
Loganathan NatarajanLAMP DeveloperCommented:
I don't think so, this will work.. as again, you are not sending the actual file stream ... you are just passing the file location to it..

have you tried this?
0
 
cebassoAuthor Commented:
yes i tried like below
i put the files upload.php and uploader.php in the Server
on Internet Explorer i called
http://www.mysite.com/upload.php?filename=C:\somepic.gif
but i got just a blank page, because i think my php script is wrong... i dont know PHP Programming well, just a little... smls :))
is that script correct? :D
i thin not :(
:D
0
 
Ray PaseurCommented:
@cebasso: There is a difference between uploading a file and reading a file stream.  If you read a file stream from, for example, a PHP script, you will get the generated HTML, not the PHP code.  If that is OK with you, then you might try something like this...

Test it here:
http://www.laprbass.com/RAY_get_file_from_url.php?f=RAY_get_file_from_url.php
http://www.laprbass.com/RAY_get_file_from_url.php?f=http://www.google.com

Best regards, ~Ray
<?php // RAY_get_file_from_url.php
error_reporting(E_ALL);
echo "<pre>";
 
// IF WE HAVE A GET ARGUMENT
if (empty($_GET["f"]))                      die("MISSING URL ARGUMENT 'f='");
if (!$data = file_get_contents($_GET["f"])) die("CANNOT GET {$_GET["f"]}");
 
// SHOW THE FILE WE GOT
echo htmlentities($data);

Open in new window

0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now