English 中文(简体)
php:扭转 我sql_real_einski_string s effects on binary
原标题:
  • 时间:2009-05-19 21:58:22
  •  标签:

我建造了一个网页,用户可以提交一份PDF,然后在中转播中转录,输入MySQL数据库。

所有这一切都奏效,除非国防军载有图像或嵌入的字体,在这种情况下,图像被腐蚀,任何使用字体的文字都消失(Acrobat展示了关于失踪人员的信息)。

我先确定问题,是因为我通过我sql_real_einski_string_Function通过pdf数据。 我转而把第64条(encode/base64_decode on submission/retrieval)作为基准,为所有新档案确定问题,但我已提交大约25份PDF,我需要阅读。

是否有可能扭转我sql_real_e爱当场的影响? 或者这些档案被损坏,无法修复?

问题回答

斜度应当确定。 你们只需要标出exactly,我sql_real_e爱戴_string。 我认为,你刚刚需要消除在捷克共和国、解放阵线、TAB、单一报价、双重报价、NUL或另一lash之前的任何冲突。 应为一线校准。

mysql_real_einski_string()使这些特性受到反弹。

x00, 
, 
, ,  , " and x1a

情况是,如果你的双倍产出回弹,则很难固定。 尽管如此,没有任何魔法职能来消除这一职能。

我真的不知道它能够做些什么。 当我改变这个法典的范畴时,我发现在网上还有其他一些情况,人们有同样的问题(但没有解决办法)。

插入法:

function db_value( $mysqli, $value ) {
if( empty($value) )
    return "  ";

if( get_magic_quotes_gpc() )
    $value = stripslashes($value);

if( !is_numeric($value) || ($value[0] ==  0  && $value != 0) )
    $value = " ".mysqli_real_escape_string($mysqli, $value)." ";

return $value;
}

function saveToDatabase( $data, $fileTempName, $abstractFileName ) {
$fileHandle = fopen( $fileTempName,  r  );
$abstractFile = fread( $fileHandle, filesize( $fileTempName ) );
fclose( $fileHandle );
$abstractFileMimeType = $fileUpload->get_mime();

$mysqli = connect_to_database();

if( $mysqli != FALSE ) {
    $insertQuery = "INSERT INTO `paper_submissions` (
        `name`,
        `affiliation`,
        `email`,
        `phone_number`,
        `title`,
        `abstract`,
        `abstract_file`,
        `abstract_file_name`,
        `abstract_file_mime_type`,
        `requests_financial_support`,
        `HTTP_USER_AGENT`,
        `REMOTE_ADDR`
    )
    VALUES ( 
        ".db_value( $mysqli, $data[ submitter_name ] ).",
        ".db_value( $mysqli, $data[ submitter_affiliation ] ).",
        ".db_value( $mysqli, $data[ submitter_email ] ).",
        ".db_value( $mysqli, $data[ submitter_phone ] ).",
        ".db_value( $mysqli, $data[ paper_title ] ).",
        ".db_value( $mysqli, $data[ abstract_text ] ).",
        ".db_value( $mysqli, $abstractFile ).",
        ".db_value( $mysqli, $abstractFileName ).",
        ".db_value( $mysqli, $abstractFileMimeType ).",
        ".db_value( $mysqli, $data[ request_financial_support ] ).",
        ".db_value($mysqli, $_SERVER[ HTTP_USER_AGENT ]).",
        ".db_value($mysqli, $_SERVER[ REMOTE_ADDR ])."
    )";

    $insertResult = $mysqli->query( $insertQuery );

    close_database( $insertResult, $mysqli );

    return $insertResult;
}

return FALSE;
}

这里是采掘法:

$selectQuery = "SELECT `abstract_file_name`, `abstract_file_mime_type`, `abstract_file`
FROM `paper_submissions`
WHERE `id` = ".db_value( $mysqli, $id );


$result = $mysqli->query( $selectQuery );

if( $result != FALSE ) {
if( $result->num_rows ) {
    $paper = $result->fetch_array( MYSQL_ASSOC );

    $fileSize = strlen( $paper[ abstract_file ] );

    header(  Date:  .gmdate( "D, d M Y H:i:s" ).  GMT  );
    header(  Expires: Thu, 19 Nov 1981 08:52:00 GMT  );
    header(  Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  );
    header(  Pragma: no-cache  );
    header(  Content-Type:  .$paper[ abstract_file_mime_type ]. ; charset=utf-8  );
    header(  Content-Length:  .$paper[ abstract_file_size ] );
    header(  Content-Disposition: inline; filename=" .$paper[ abstract_file_name ]. "  );
    echo $paper[ abstract_file ];
    exit();
}
}

Ólafur,

我从“加拿大”手册中收集了这些内容,甚至尝试了如下内容:

$search = array( "\0", "\n", "\r", "\\", "\ ", "\"", "", );
$replace = array( "x00", "
", "
", "\", " ", """, "x1a" );
$desiredString = str_replace( $search, $replace, $escapedString );

在处理案文时,这似乎奏效,但仅将其应用于二元数据,从而进一步降低PDF的等级(例如,没有段落)。





相关问题
热门标签