具有上传大小的远程上传文件

时间:2018-12-23 12:16:11

标签: jquery ajax upload progress filesize

例如,我创建了一个包含以下内容的文件(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的可能性就有可能阻止浏览器访问服务器。因此,这不是一个好方法:(

0 个答案:

没有答案