Php Copy():文件名长于允许的最大路径。。。Base64图像

Php Copy():文件名长于允许的最大路径。。。Base64图像,php,server,copy,Php,Server,Copy,我有“拖放”图像上传。我通过ajax将图像作为“Base64图像”发送到我的模块,然后使用“copy()”移动图像 例如:copy($image\u in\u b64,$destination) 它回来了 copy():文件名超过了上允许的最大路径长度 该平台(4096):数据:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAA 在我的本地服务器上一切都很好,但我无法在已部署的服务器上上载任何内容。我怎样才能解决这个问题?这是服务器配置中的内容吗(什么)?谢

我有“拖放”图像上传。我通过ajax将图像作为
“Base64图像”
发送到我的模块,然后使用
“copy()”
移动图像

例如:
copy($image\u in\u b64,$destination)

它回来了

copy():文件名超过了上允许的最大路径长度 该平台(4096):数据:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAA


在我的本地服务器上一切都很好,但我无法在已部署的服务器上上载任何内容。我怎样才能解决这个问题?这是服务器配置中的内容吗(什么)?

谢谢您的评论,我必须对我的图像进行编码,然后才能上传它

解决方案:

$data = //image in base64
list($img_type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

file_put_contents($path, $data);

Base64编码文件不是文件路径。为什么它在本地主机上工作?移动此文件的另一种方法是什么?从中可以看出,您需要在服务器上启用“fopen wrappers”。您还可以将其与Ajax一起使用,然后将其作为PHP中的普通文件上载进行威胁。