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

时间:2014-02-22 07:43:37

标签: php apache image-processing

我使用php脚本将图像上传到我的服务器。我只能将jpeg格式的图像添加到我的服务器。
我无法将png格式图像添加到我的服务器。我的脚本中没有使用任何条件。它可以是所有类型的图像。任何人帮助我。这是我使用的代码。文件来自另一个页面。通过jquery对此页面的值进行ges。 其中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'])));
}

1 个答案:

答案 0 :(得分:1)

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

当然所有$ _REQUEST和$ _SERVER都应该是正确的。

    // 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 ) );
    }

在每一步检查您是否拥有您期望的信息。