php上传文件move_uploaded_file的问题

php中文网
发布: 2016-06-23 14:16:40
原创
1313人浏览过


Linux系统下跑的apache服务器。

就是实现HLS协议播放音频:

程序上传a.m3u8和1.ts,10秒后上传a.m3u8和2.ts,...a.m3u8,3.ts...如此循环下去。
当我没有打开播放器客户端的时候 文件上传一切正常,多长时间都没问题。

当我打开播放器播放这些文件的时候,也就是访问那个a.m3u8文件时候。
这个时候上传a.m3u8 就失败了,但是上传其他文件都正常,也就是说除了文件名是a.m3u8的文件,其他文件都可以上传。

php页面接收文件的代码大致如下:

$temp_name = $_FILES['upfile']['tmp_name'];
$file_name = $_FILES['upfile']['name']; 
$file_name = str_replace("\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//文件名字检查
if ( $file_name =="") { 
$message = "Invalid File Name Specified";
return $message;
}

$result  =  move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0755))
$message = "change permission to 755 failed.";
 else
$message = ($result)?"$file_name uploaded successfully." : "Somthing is wrong with uploading a file.";

上传失败的时候 message 的内容是 "change permission to 755 failed."
我分析了一下result的内容是空的,说明move_uploaded_file这个函数执行失败了。
原来目录下是有a.m3u8文件的,上传失败的时候 目录下的a.m3u8文件也消失了。

各位大神,帮小弟看看这是神马问题呢?
是因为权限问题么?因为a.m3u8正在被访问,所以无法move替换掉他么?
还是因为其他神马问题呢。


求大神们指点啊 !
谢谢啦!!!






回复讨论(解决方案)

打开php的错误提示。
ini_set("display_errors",1);
error_reporting(E_ALL);
最有可能原因是move_uploaded_file的目标文件夹不具有写入的权限。

打开php的错误提示。
ini_set("display_errors",1);
error_reporting(E_ALL);
最有可能原因是move_uploaded_file的目标文件夹不具有写入的权限。

谢谢你的回答!  
由于服务器不是我能用控制的,所以 打开php的错误提示 这个方法只能明天试试看了。
可是当我在没有客户端在访问这个move_uploaded_file的目标文件的时候,一切都是正常的。
当有客户端在访问这个文件的时候,move_uploaded_file就失败了,而且原先这个move_uploaded_file的目标文件是存在的,失败之后文件就没掉了。


您不不是已经知道原因了吗? 因为a.m3u8正在被访问,所以无法move替换掉他

您不不是已经知道原因了吗? 因为a.m3u8正在被访问,所以无法move替换掉他

那我想知道  什么方法可以解决这个问题?
就是可以强制替换的。

关闭使用该文件的软件。别无他法
既然已经有了,重新上传有什么意义呢?

关闭使用该文件的软件。别无他法
既然已经有了,重新上传有什么意义呢?

是为了实现HLS协议,
m3u8是个索引文件,里面的内容是要不断更新的。

刚刚得知,这个apache是跑在windows上的。 通过测试发现了,跑在linux下的是可以实现的。
可能是因为windows的缘故了,正在使用,无法替换。  linux是可以替换的。 

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号