Php png格式的图像未存储在我的服务器中

Php png格式的图像未存储在我的服务器中,php,apache,image-processing,Php,Apache,Image Processing,我使用php脚本将图像上传到服务器。我只能将jpeg格式的图像添加到我的服务器 我无法将png格式的图像添加到我的服务器。我在脚本中没有使用任何条件。它可能是所有类型的图像。谁来帮帮我。这是我使用的代码。文件来自另一个页面。通过jquery将值添加到此页面。 其中c3是文本框名称 $file_name1 = dirname($_SERVER['DOCUMENT_ROOT']).'/CDN/image/'.$t."1".substr($_REQUEST['c3'],strlen($_REQUEST

我使用php脚本将图像上传到服务器。我只能将jpeg格式的图像添加到我的服务器
我无法将png格式的图像添加到我的服务器。我在脚本中没有使用任何条件。它可能是所有类型的图像。谁来帮帮我。这是我使用的代码。文件来自另一个页面。通过jquery将值添加到此页面。 其中c3是文本框名称

$file_name1 = dirname($_SERVER['DOCUMENT_ROOT']).'/CDN/image/'.$t."1".substr($_REQUEST['c3'],strlen($_REQUEST['c3'])-4,strlen($_REQUEST['c3']));
file_put_contents($file_name1,base64_decode( str_replace('data:image/jpeg;base64,', '',$_REQUEST['c13'])));
mysql_query("INSERT INTO `table_name` VALUES ('','".$_REQUEST['c1']."','".$_REQUEST['c5']."','".$_REQUEST['c6']."','".$t."1".substr($_REQUEST['c3'],strlen($_REQUEST['c3'])-4,strlen($_REQUEST['c3']))."','".$_REQUEST['c27']."','".$_REQUEST['c28']."','".$_REQUEST['c25']."','".$_REQUEST['c26']."','".$_REQUEST['c11']."','".$_REQUEST['c12']."',NOW())"); 
谢谢你的回复。。我得到了答案。我使用以下代码:

if(strpos($_REQUEST['c13'],'jpeg') !== false ) {
file_put_contents($file_name1,base64_decode( str_replace('data:image/jpeg;base64,', '',$_REQUEST['c13'])));
}
elseif(strpos($_REQUEST['c13'],'png') !== false ) {
file_put_contents($file_name1,base64_decode( str_replace('data:image/png;base64,', '',$_REQUEST['c13'])));
}

我试图让您的代码更加清晰,并帮助您找到代码中发生的事情,使用var_dump()查看值

当然,所有$\u请求和$\u服务器都应该是正确的

    // initialize variables
    $file_name1 = false;
    $document_root = false;
    $request_c3_len = false;
    $fragment = false;
    $mime = false;

    // check what information is available
    if ( isset( $_SERVER['DOCUMENT_ROOT'] ) !== false ) {
        $document_root = dirname( $_SERVER['DOCUMENT_ROOT'] );
    }
    if ( isset( $_REQUEST['c3'] ) !== false ) {
        $request_c3_len = strlen( $_REQUEST['c3'] );
        $fragment = substr( $_REQUEST['c3'],( $request_c3_len - 4 ), $request_c3_len );
    }

    if ( ( $document_root !== false ) && ( $fragment !== false ) ) {
        $file_name1 = $document_root.'/CDN/image/'.$t."1".$fragment;
    }
// var_dump( $file_name1 );
// exit( __FILE__.' '.__LINE__ );



    // work only if necessary
    if ( ( $file_name1 !== false ) && ( isset( $_REQUEST['c13'] ) !== false ) ) {
        $mime = str_replace( 'data:image/jpeg;base64,', '',$_REQUEST['c13'] );
// var_dump( $mime );
// exit( __FILE__.' '.__LINE__ );       
        file_put_contents( $file_name1, base64_decode( $mime ) );
    }

在每个步骤中检查您是否拥有所需的信息。

您可以发布相关代码吗?在将图像存储到硬盘之前,您是否正在尝试对其进行处理?如果是,您正在使用哪个库?您是否支持png文件?您是否尝试过使用不同的文件,如.txt、.mp3等?。您尝试的.png文件是否比jpg文件重(Kb以上)?文件的大小(Kb)是多少?你现在的上传限制是多少?哇,当我刚看到代码的时候,我以为有格式问题,但是没有,这是你写的方式。这是我最近看到的最复杂的代码之一。如何将png格式添加到此行base64_decode(str_replace('data:image/jpeg;base64','','',$_REQUEST['c13'])感谢您的回复。实际上,我的问题是我无法添加png文件,因为我只选中了“data:image/jpeg;base64”。现在我为checkpng添加了另一个代码。我的答案如上所述。