How can I upload an image from a URL in PHP

How can I upload an image from a URL in PHP

In this tutorial, i will tell you how to upload image from URL in PHP.

You have to enter complete path of image in text box and then click submit to upload image with new file name.

I write here basic simple script to upload an image file from URL.

Before goint with this post, you will need to know about file_get_contents and file_put_contents methods in PHP.

It will take only two step to upload image from URL.

  • Create a HTML Form to enter file URL.
  • Create a PHP File to upload image from URL.
Step 1: Create a HTML Form - fileupload.html

I have created a html file fileupload.html with simple form to take image url entered by user and post form data to upload_image.php for uploading.

  1. <html>
  2. <head>
  3. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
  4. </head>
  5. <body>
  6. <div class="row">
  7. <form method="post" action="upload_image.php">
  8. <div class="col-md-6">
  9. <input type="text" class="form-control" name="image_path" placeholder="Enter Image URL">
  10. </div>
  11. <div class="col-md-6">
  12. <input type="submit" class="btn btn-primary" name="post_image" value="Submit">
  13. </div>
  14. </form>
  15. </div>
  16. </body>
  17. </html>
Step 2: Create a PHP File - upload_image.php
  1. <?php
  2. if(isset($_POST['post_image']))
  3. {
  4. $image_url=$_POST['image_path'];
  5. $data = file_get_contents($image_url);
  6. $new = 'images/myimage.jpg';
  7. $upload =file_put_contents($new, $data);
  8. if($upload) {
  9.     echo "<img src='images/myimage.jpg'>";
  10. }else{
  11.     echo "Please upload only image files";
  12. }
  13. }
  14. ?>

As you notice i have used file_get_contents that returns file in a string and it is similar to file().

And file_put_contents method is used to write string to a file and if file filename already exists then appends the data to the file.

I have created a images directory where all the uploaded files will be save.

Phone: (+91) 8800417876
Noida, 201301