0

上传前确定“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 或其他的方法?

4

2 回答 2

0
  1. 提供的脚本显示下载文件的大小。tmp_name是不可访问的文件,因此您无法从服务器外部测量它的大小。

  2. 从 php 5.4 你可以跟踪上传进度

于 2013-11-13T04:27:32.470 回答
0

好的,我明白为什么 javascript 中的文件大小( tmp_name_ HERE_)由于 www.domain.com 而无法工作......

但是修改呢?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) );
?>
于 2013-11-13T14:15:36.523 回答