我使用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'])));
}
答案 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 ) );
}
在每一步检查您是否拥有您期望的信息。