我需要在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);
}
但问题是我需要文件路径,文件控件不允许我获取完整路径,我希望在用户选择文件时上传之前向用户显示持续时间。这可能吗?
答案 0 :(得分:0)
在上传之前,文件驻留在用户的计算机上,服务器端的PHP脚本不知道该文件。因此,在上传文件之前不可能获得该文件的任何数据。