将上传的文档转换为binary / ascii并作为api变量发送

时间:2011-07-20 07:09:39

标签: php mysql blob

我需要编写一个上传doc文件的代码,并将其内容以二进制或ASCII格式作为API变量发送。我可以想到两种方法(1)上传文件,然后读取其内容并将数据发送到api( 2)上传文件,然后存储其内容并访问blob数据并发送到api。

我想问哪一个更好。现在我正在使用第二种选择。

现在我的问题是我能够上传部分并作为blob数据存储到数据库部分, 但是当我使用mysql查询访问blob数据并将结果发送到API时。 API表示它不是二进制或ASCII。当我回显查询结果时,它显示了乱码数据,所以我假设它不是二进制或ascii。请告诉我如何将这个blob数据作为二进制/ ASCII传递给API。

<?php

$filename = "resume3.doc";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);

// URL of Form
$url = "http://rezscore.com/a/2901e8/grade";
//create the final string to be posted
$post_string = "resume=$contents";

//create cURL connection
$curl_connection = curl_init($url);

//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0;   Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

//perform our request
$result = curl_exec($curl_connection);

print $result;

//close the connection
curl_close($curl_connection);      
?>

该文件应该是简历,api会返回简历的等级。 http://rezscore.com/

由于

1 个答案:

答案 0 :(得分:0)

你可以在没有MySQL的情况下直接使用。只需将文件上传到某个临时目录,然后使用http://php.net/fread二进制安全读取其内容。