Php 将上载的文档转换为二进制/ascii并作为api变量发送

Php 将上载的文档转换为二进制/ascii并作为api变量发送,php,mysql,blob,Php,Mysql,Blob,我需要编写一个代码,上传doc文件并将其内容以二进制或ASCII作为API变量发送。我可以想到两种方法(1)上传文件,然后读取其内容并将数据发送到API(2)上传文件,然后存储其内容并访问blob数据并发送到API 我想问哪一个更好。现在我正在使用第二个选项 现在我的问题是我能够上传部分并将其作为blob数据存储到数据库部分, 但当我使用mysql查询访问blob数据并将结果发送到API时。API说它不是二进制或ASCII格式。当我回显查询结果时,它会显示jibberish数据,所以我假设它不是

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

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

现在我的问题是我能够上传部分并将其作为blob数据存储到数据库部分, 但当我使用mysql查询访问blob数据并将结果发送到API时。API说它不是二进制或ASCII格式。当我回显查询结果时,它会显示jibberish数据,所以我假设它不是二进制或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返回简历的等级


谢谢

您可以直接使用无需MySQL的方式。只需将文件上传到某个临时目录,并使用二进制安全读取其内容。

谢谢。fread没有解决这个问题,这就是为什么我切换到数据库选项fread()是二进制安全的,并按原样返回文件内容。可能下一步处理不正确。请查看问题中的代码。我没有收到任何错误,但不管不同的简历,评分始终为F(这不是简历)。如果您尝试通过浏览器模拟表单发布(因为您设置了useragent标头),则代码不正确。阅读:若要发布文件,请在文件名前加@并使用完整路径…我也在使用,但我得到的不是简历@vicky