我使用的是一个文件上传表单字段,我想从该字段编码文件名,不想移动任何临时文件夹,直接插入数据库,同时显示图像直接获取DB并显示网站,我希望像数据那样编码: image /png;base64 64,iVBORw0KGgoAAAANSUhEUgAAADIA
$path = basename($_FILES['file']['name']);//here i am getting filename
$im = file_get_contents($path);//here i am getting false
$imdata = base64_encode($im); // so can't here encode the filename
$horoscope = array("encode" => $imdata,"path" =>$path,"getcontents" =>$im);
echo json_encode($horoscope);
发布于 2016-06-10 08:44:41
PHP将文件上传到临时文件中,并告诉您该文件在$_FILES['file']['tmp_name']中的位置-- $_FILES['file']['name']保存用户在其系统中调用文件的文件名,即他们在浏览器中选择的文件名。
因此,如果您想在对文件执行move_uploaded_file()之前获取该文件,请使用$_FILES['file']['tmp']
$path = $_FILES['file']['tmp_name'];
$im = file_get_contents($path);
$imdata = base64_encode($im);
$horoscope = array("encode" => $imdata,
"path" =>$path,
"getcontents" =>$im
);
echo json_encode($horoscope);我不知道您要传回$path是为了什么,所以可能仍然需要$_FILES['file']['name']。
$horoscope = array("encode" => $imdata,
"path" => $_FILES['file']['name'],
"getcontents" => $im
);RE:评论1
我假设您希望将文件的base64encoded版本存储到数据库中,以便将其存储为$imdata。
RE:评论2
要获得传入文件的扩展名,请使用pathinfo()
$path = $_FILES['file']['tmp_name'];
$file_parts = pathinfo($path);
$extn = $path_parts['extension'];但是要小心,仅仅因为扩展名说.png并不能真正保证它是一个.png文件
https://stackoverflow.com/questions/37743559
复制相似问题