我有一个简单的输入表单,其中包含输入类型="file",名称=“pdf_statement”。
我希望能够上传内容并即时插入数据库。由于这只是一个测试文件,我并不担心安全性(一旦功能到位我就会添加)。
我已阅读http://php.net/manual/en/function.stream-get-contents.php但无法让它发挥作用。我收到错误 fopen() 期望参数 1 为字符串,给定数组 和 *stream_get_contents() 期望参数 1 为资源,给定 bool 值*。
如果这太明显了,我很抱歉,但对于正在学习的人来说,我无法弄清楚我做错了什么。
<?php
include('session.php');
$provider =$_POST['provider_id'];
$trd_period =$_POST['trading_period_month'];
$pdf_statement =stream_get_contents(fopen($_FILES['pdf_statement'], 'r'));
$sql_qry="update rd_provider_statement
set (pdf_statment='".$pdf_statement."', creation_user_id='SCO')
where provider='".$provider."' and trading_period_month='".$trd_period."'";
$sql_err_no=sql_select($sql_qry,$sql_res,$sql_row_count,$sql_err,$sql_uerr);
?>
最佳答案
您需要以二进制模式打开文件:
fopen($_FILES['pdf_statement']['tmp_name'], 'rb')
或者您可以只使用file_get_contents()
相反。
$pdf_statement = file_get_contents($_FILES['pdf_statement']['tmp_name']);
您还需要清理您的输入。使用mysql_real_escape_string()
关于PHP 即时上传到 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11431855/