确定" 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>
我想替换&#39; tmp_name_ HERE _ &#39;通过tmp_name,因为提交表单时,它会上传文件并在iframe中显示输出。
function jsFunctionTostartUploadandTrackUpload( tmp_name___HERE___ )
{
$("#upform").submit();
checkUpProgress = window.setInterval(function() { $("#uploadedBytes").html ( filesize ( tmp_name___HERE___ ) ); },3000);
}
你明白我想做什么吗?
是否有类似ini_set或其他的方式?
答案 0 :(得分:0)
提供的脚本显示下载文件的大小。 tmp_name
不是可访问文件,因此您无法从服务器外部测量其大小。
从php 5.4你可以track upload progress。
答案 1 :(得分:0)
好的,我知道为什么javascript中的filesize(tmp_name_ HERE _ )因www.domain.com而无效......
但是修改呢? ajax调用将检查的php(内部服务器路径... / public_html / tmp / tmp_name_ HERE _ )是否可行?
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) );
?>