我写了一个脚本来上传pdf文件,该文件加密文件的名称并将其上传到服务器。脚本工作正常,但没有得到json响应可以帮助我。
这是我的代码
<?php
//Turn off all error reporting
//error_reporting(0);
ini_set ("display_errors", "1");
error_reporting(E_ALL);
define("ENCRYPTION_KEY", "!@#$%^&*");
/**
* Returns an encrypted & utf8-encoded
*/
function encrypt($pure_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
/**
* Returns decrypted original string
*/
function decrypt($encrypted_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
$fieldname = 'pdfFile';
$targetdir = 'upload/';
$desiredtype = 'application/pdf';
$return=array(
'status' => 'false',
'message' => 'Pdf file not uploaded!'
);
if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_FILES[ $fieldname ] )){
try{
$obj = (object)$_FILES[ $fieldname ];
$name = $obj->name;
$size = $obj->size;
$tmp = $obj->tmp_name;
$type = $obj->type;
$error= $obj->error;
if( is_uploaded_file( $tmp ) && $error == UPLOAD_ERR_OK && $type == $desiredtype ){
$encrypted_name = encrypt($name, ENCRYPTION_KEY);
$destination = $targetdir . $encrypted_name;
$url = "webservice.pixcelservice.com";
if( file_exists( $destination ) ){
$return['status']='false';
$return['message']='File already exists!';
$return['line']=__LINE__;
clearstatcache();
} else {
if($res = move_uploaded_file( $tmp, $destination )){
chmod($destination, 0755);
$return['status']=$res ? 'true' : 'false';
$return['message']=$res ? 'Pdf file uploaded successfully!' : 'Moving the file failed!';
$return['path']="$url/$destination";
}
}
} else {
$return['status']='false';
$return['message']='File upload error!';
$return['line']=__LINE__;
}
}catch( Exception $e ){
$return['status']='false';
$return['message']=$e->getMessage();
$return['line']=__LINE__;
}
header('Content-type: application/json');
exit( json_encode( $return ) );
} else {
exit( header( 'HTTP/1.1 405 Method Not Allowed',true, 405 ) );
}
?>