Удаленная загрузка файла с загруженным размером - PullRequest
0 голосов
/ 23 декабря 2018

Например, я создал файл (upload.php) со следующим содержимым и загрузил его на свой сервер:

$url = $_GET['url'];
$put = file_put_content('./' . basename($url),file_get_contents($url));

if($put){
      echo json_encode(array('status' => true));
}

Хорошо, теперь на другом сервере у меня есть эта форма:

<input type="url" id="url">

<a onclick="doUpload()">Upload</a>


<div id="uploaded_size"></div>

<script>
         function doUpload() {
                  $.ajax({
                    cache: false,
                    type: 'GET',
                    dataType: "json",
                    url: 'http://example.com/upload.php',
                    data: {
                      url: $('#url').val()
                    },
                    beforeSend: function (data){
                      //i want show uploaded file size in this area or in success function.
                    },
                    success: function (data) {
                    },
                  })
      }
<script>

Как я могу просматривать размер загруженного файла каждые 2 секунды, используя этот метод?Например:

          function SetProgressStart() {
            doProgress = setInterval(
              showProgress, 2000);
          }

          function showProgress() {
              $('#uploaded_size').html();
          }


ОБНОВЛЕНИЕ :

Я сделал этот трюк, Смотри:

  $url = $_GET['url'];
  $name = basename($url);

 //Here we request the file size:
  if(isset($_GET['size']))
  {
       // Get Uploading File Size
      $filesize = filesize($name);
      die(json_encode(array('uploaded' => $filesize)));
  }

   $put = @file_put_content('./' . $name, @file_get_contents($url));

   if($put){
         echo json_encode(array('status' => true));
   }

Но проблема в том,что файл загружается, пока операция не будет завершена, отсутствует в папке.Поэтому мне нужен метод, который не может обработать файл при загрузке во временную папку.в любом случае, если этот метод работает, для каждых 2 секунд запроса на URL есть возможность заблокировать браузер с сервера. Так что это не очень хороший способ: (

...