Например, я создал файл (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 есть возможность заблокировать браузер с сервера. Так что это не очень хороший способ: (