我有一个我无法访问的PC上托管的网站.我有一个上传表单,允许人们上传最大30MB的mp3文件.我的服务器端脚本是用PHP完成的.
每次我尝试上传文件时,都会收到一条错误,声称该文件超出了允许的最大大小,因此我需要增加大小.我在网上的研究建议更改.htaccess我无法访问的文件,这样就行不通了.其他人建议我应该php.ini在我的root上添加一个自定义文件,这个文件不起作用.还有其他建议吗?
我有一个数据URI,我从javascript和尝试通过PHP保存.我使用以下代码,它给出了一个明显损坏的图像文件:
$data = $_POST['logoImage'];
$uri = substr($data,strpos($data,",")+1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs 9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVQYlYWQMW7CUBBE33yITYUUmwbOkBtEcgUlTa7COXIVV5RUkXKC5AxU EdyZVD4kyKxkwIrr9vd0c7Oih aopinLNsF6Qkg2XW4XJ7LGFsAAcTV6lF5/jLdbALA9XDAXYfthFQVx OrmqKYK88/7rbbMFksALieTnzu9wDYTj6f70PKsp2kwAiSvjXNcvkWpAfNZkzWa/5a9yT7fdoX7rrB7hYh2fXo9HdjPYQZu3MIU8bYIlW20y0RUlXG2Kpv/vfwLxhTaSQwWqwhAAAAAElFTkSuQmCC
Run Code Online (Sandbox Code Playgroud)
代码下面是作为Data-URI的实际图像.'logoImage'是上面的字符串,$ uri是字符串减去'image/jpeg; base64'.
我正在使用Valums文件上传器通过带有进度条的网页上传文件.几乎一切正常,但我无法更改默认的tmp目录,在上传过程中存储文件.
文件应存储在/upload目录中,而不是存储在默认系统/tmp目录中,因为/tmp它安装在RAM磁盘中,其大小限制为4 MB,用户将上传大约10 MB的文件.
我搜索了很多网页,但没有一个解决方案有效.我已将temp目录设置为php.ini:
upload_tmp_dir =/upload
Run Code Online (Sandbox Code Playgroud)
我已经设置了/uploaddir的权限,而apache是该文件的所有者,因此该目录肯定是PHP可写的.
我已经在文件上传器中设置了目标路径/upload,因为我希望文件在上传后也存储在此目录中.最终结果是成功上传了小文件,但是大于4 MB的文件无法上传 - 我想到这种行为的唯一原因是文件/tmp在上传期间存储.可以肯定的是,我已经检查了它,sys_get_temp_dir()结果是/tmp-so PHP忽略了我的php.ini指令,或者还有其他一些方法来设置上传过程中存储文件的位置.
哦,最后的信息:open_basedir没有设置,所以PHP访问磁盘只受文件权限的限制.