[英]Determine “tmp_name” before upload
上傳前確定“ tmp_name” ...?
因此,我發現了這一點: http : //phpjs.org/functions/filesize/我想在上傳過程中檢查文件大小,但是我需要在上傳之前設置tmp_name才能跟蹤它。
我的代碼示例:
<form id="upform" action="'upload.php" method="post" enctype="multipart/form-data" encoding="multipart/form-data" name="upform" target="upFrame" >
<input id="uploadPic_input" name="uploadPic_input" type="file" value="" onchange="jsFunctionTostartUploadandTrackUpload( 'tmp_name___HERE___' );" />
</form>
<iframe id="upFrame" name="upFrame" frameborder="0" scrolling="auto" ALLOWTRANSPARENCY="true" width="100%" height="450"> </iframe>
<div class="" id="uploadedBytes" > </div>
我想用tmp_name替換“ tmp_name_ HERE_ ”,因為提交表單時,它將上傳文件並在iframe中顯示輸出。
function jsFunctionTostartUploadandTrackUpload( tmp_name___HERE___ )
{
$("#upform").submit();
checkUpProgress = window.setInterval(function() { $("#uploadedBytes").html ( filesize ( tmp_name___HERE___ ) ); },3000);
}
你知道我在做什么嗎?
有沒有像ini_set之類的方法?
提供的腳本顯示下載文件的大小。 tmp_name
是不可訪問的文件,因此無法從服務器外部測量它的大小。
從php 5.4開始,您可以跟蹤上傳進度 。
好的,我明白了為什么www.domain.com會導致javascript中的文件大小(tmp_name_ HERE_ )無法正常工作……
但是修改呢? ajax調用將與(內部服務器路徑... / public_html / tmp / tmp_name_ HERE_ )進行檢查的php會有效嗎?
Javascript:
function jsFunctionTostartUploadandTrackUpload( tmp_name___HERE___ )
{
$("#upform").submit();
$.ajax
({
type: "POST",
url: site_url+'/checkUploadedBytes.php',
dataType: 'json',
data:'uploading_file_id='+encodeURIComponent (tmp_name___HERE___),
cache: false,
//async: false,
success: function(data)
{
$("#uploadedBytes").html(data.uploadedBytes_message1);
},
error: function(data)
{
$("#uploadedBytes").html("_Error").css("color","red");
}
});
}
PHP的:
<?php
$uploadedBytes_message1 = filesize ( $_POST['uploading_file_id']; )
echo json_encode(array("uploadedBytes_message1" => $uploadedBytes_message1) );
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.