PHP实现文件上传小结(只上传到服务器)

Posted 愤怒的白炽灯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP实现文件上传小结(只上传到服务器)相关的知识,希望对你有一定的参考价值。

1.  文件上传的插件建议开启分片上传,因为服务器默认的单次可上传文件大小一般很小,又不建议修改服务器配置,所以开启分片上传,并将分片的大小设置为小于等于服务器的默认值,这样可以避免一些错误。

2.  php接收文件上传时候,单次只会接收到一个分片的内容,所以我们应该每一次都将当前上传分片的内容保存到服务器文件中,直到最后一次上传完成,完整的文件才生成,具体实现如下

  • PHP的超级全集变量中$_FILES中可以接收到文件的临时路径,$_POST中可以接收到当前分片和总的分片数
  • 利用file_get_content()函数获取当前分片的内容
  • 利用file_put_content()函数将分片内容保存到文件中(具体两个方法看手册)
  • 如果是第一个分片,在往文件中写数据的时候,如果文件不存在,则会自动创建一个
  • 第一个分片上传来的时候创建了一个文件,所以我们后面只需要往文件中追加写入内容即可,file_put_content函数有具体的参数可以实现
  • 如果你担心后面会上传一样文件名的文件,可以在最后一个分片结束后从新创建一个带有唯一标识文件名的文件,上面两个函数即可实现,然后把原来的文件删除,
  • 最后就是把文件上传到阿里云什么的,需要考虑的是你在上传到阿里云成功后需不需要删除服务器文件。

 

以上是关于PHP实现文件上传小结(只上传到服务器)的主要内容,如果未能解决你的问题,请参考以下文章

文件上传图片

php文件上传漏洞代码只允许上传图片

SpringMvc的MultipartFile上传文件小结

PHP图片上传功能实现

求php怎么实现web端上传超大文件

PHP跨域上传的几种方法