如何在上传之前在php中找到wav文件的持续时间?

时间:2012-07-26 06:16:47

标签: php wav duration

我需要在php中获取wav文件的持续时间。我知道有很多代码示例可用于此问题。我用过这个。

function wavDur($file) {
    $fp = fopen($file, 'r');
    if (fread($fp,4) == "RIFF") {
        fseek($fp, 20);
        $rawheader = fread($fp, 16);
        $header = unpack('vtype/vchannels/Vsamplerate/Vbytespersec/valignment/vbits',$rawheader);
        $pos = ftell($fp);
        while (fread($fp,4) != "data" && !feof($fp)) {
            $pos++;
            fseek($fp,$pos);
        }
        $rawheader = fread($fp, 4);
        $data = unpack('Vdatasize',$rawheader);
        $sec = $data[datasize]/$header[bytespersec];
        $minutes = intval(($sec / 60) % 60);
        $seconds = intval($sec % 60);
        return str_pad($minutes,2,"0", STR_PAD_LEFT).":".str_pad($seconds,2,"0", STR_PAD_LEFT);
    }

但问题是我需要文件路径,文件控件不允许我获取完整路径,我希望在用户选择文件时上传之前向用户显示持续时间。这可能吗?

1 个答案:

答案 0 :(得分:0)

在上传之前,文件驻留在用户的计算机上,服务器端的PHP脚本不知道该文件。因此,在上传文件之前不可能获得该文件的任何数据。