1. 文件上传的插件建议开启分片上传,因为服务器默认的单次可上传文件大小一般很小,又不建议修改服务器配置,所以开启分片上传,并将分片的大小设置为小于等于服务器的默认值,这样可以避免一些错误。
2. php接收文件上传时候,单次只会接收到一个分片的内容,所以我们应该每一次都将当前上传分片的内容保存到服务器文件中,直到最后一次上传完成,完整的文件才生成,具体实现如下
- PHP的超级全集变量中$_FILES中可以接收到文件的临时路径,$_POST中可以接收到当前分片和总的分片数
- 利用file_get_content()函数获取当前分片的内容
- 利用file_put_content()函数将分片内容保存到文件中(具体两个方法看手册)
- 如果是第一个分片,在往文件中写数据的时候,如果文件不存在,则会自动创建一个
- 第一个分片上传来的时候创建了一个文件,所以我们后面只需要往文件中追加写入内容即可,file_put_content函数有具体的参数可以实现
- 如果你担心后面会上传一样文件名的文件,可以在最后一个分片结束后从新创建一个带有唯一标识文件名的文件,上面两个函数即可实现,然后把原来的文件删除,
- 最后就是把文件上传到阿里云什么的,需要考虑的是你在上传到阿里云成功后需不需要删除服务器文件。