上传某些文件名时500(内部服务器错误)

时间:2014-03-09 19:04:25

标签: php

我正在上传一些文件,但有时我会收到错误500。 我只是javascript上传文件。

$userid = $_REQUEST['usr'];

$img = $_REQUEST['fileTopostUpload'];
$imgtype = substr($img,0,23);
$imgtypee = substr($img,0,22);
$imgtype2 = substr($img,5,10);
$imgtype3 = substr($img,5,9);

$filesize = $_REQUEST['filesize'];
$filename = $_REQUEST['filename'];
$filetype = $_REQUEST['filetype'];

$write_view = explode("-", $filename);

$artist = $write_view['0'];
$song = $write_view['1'];


$md5encoded = md5("$date$userid");
$ext = ".mp3";

$img = str_replace('data:audio/mp3;base64,', '', $img);
$img = str_replace('data:audio/mpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);




$check = mysql_query("SELECT * FROM songs WHERE songuploaduser = '$userid' AND songfilename = '$filename' AND songfilesize = '$filesize'");
$checkcheck = mysql_num_rows($check);

if($checkcheck == "0") {

$insert = mysql_query("INSERT INTO songs(
songartist,
songtitle,
songfilename,
songfilesize,
songuploaduser,
songuploaddate,
songpencoded
)VALUES(
'$artist',
'$song',
'$filename',
'$filesize',
'$userid',
'$date',
'$md5encoded$ext'
)");



$file = "$_SERVER[DOCUMENT_ROOT]/uploads/audio/$md5encoded$ext";
$success = file_put_contents($file, $data);


}

提供错误的文件类似于以下内容: 11 - Wamdue项目 - 我的城堡之王.mp3 01. Loreen - Euphoria.mp3 08. Fist Aid Kit - The Lion's Rour.mp3

但是有效的文件: Imran Khan - Amplifier.mp3 09. Lange Frans,Brutus,Negativ& Baas B - Je Bent Geen Tijger.mp3

我不明白..怎么能说一个文件给出错误500而另一个文件没有?

1 个答案:

答案 0 :(得分:1)

从评论中可以看出,您有内存错误。你的PHP进程有32 MB运行,这还不够。看看memory_limit directive in php.ini,或者使用类似ini_set('memory_limit','64M')之类的东西从脚本中更改它;这个过程将从32MB变为64MB。

您必须区分内存错误(通常是“允许的内存耗尽”错误,前面已解释过)和可以使用php.ini上传的最大允许上传文件大小upload_max_filesize