PHP接收文件流后存为图片。
我有。NET代码:
string filePath = Server.MapPath("pics");
string fileNm = System.DateTime.Now.ToString("yyMMddHHmmss") + StringUtil.CreateRandomCode(3) + ".jpg";
Stream responseStream = Request.InputStream;
FileStream outputStream = new FileStream(filePath + @"\" + fileNm, FileMode.Create);
int count = 1024;
byte[] buffer = new byte[count];
for (int i = responseStream.Read(buffer, 0, count); i > 0; i = responseStream.Read(buffer, 0, count))
{
outputStream.Write(buffer, 0, i);
}
outputStream.Close();
responseStream.Close();
改成PHP的或是大家谁用过?
我有。NET代码:
string filePath = Server.MapPath("pics");
string fileNm = System.DateTime.Now.ToString("yyMMddHHmmss") + StringUtil.CreateRandomCode(3) + ".jpg";
Stream responseStream = Request.InputStream;
FileStream outputStream = new FileStream(filePath + @"\" + fileNm, FileMode.Create);
int count = 1024;
byte[] buffer = new byte[count];
for (int i = responseStream.Read(buffer, 0, count); i > 0; i = responseStream.Read(buffer, 0, count))
{
outputStream.Write(buffer, 0, i);
}
outputStream.Close();
responseStream.Close();
改成PHP的或是大家谁用过?
接收文件,把文件存储为 jpg 格式/*
*$fname 为上传的图片名
*$fpath 为文件要保存的路径
*$upname 为保存该文件设一个前缀
*/
function upfile( $fname, $fpath, $upname )
{
if( is_uploaded_file( $_FILES[$fname]['tmp_name'] ) )
{
$upfile = $upname.time().rand( 1, 100000 ).".jpg"; //保存为jpg格式的
$fpath = $fpath.$upfile;
if( move_uploaded_file( $_FILES[$fname]['tmp_name'], $fpath ) )
{
return $upfile;//返回文件名
}
else
{
echo "<script>alert('上传失败')</script>";
return false;
}
}
else
{
if( $_FILES[$fname]['error'] == 2 || $_FILES[$fname]['error'] == 1 )
{
echo "<script>alert('上传失败,文件过大')</script>";
return false;
}
return NULL;
}
}upfile('img','/usr/local/upfile','IMG' );
除了 php ,其他 web 语言都需要对他进行处理(尽管对象名可能不一样)
而 php 的设计者已经周到的替你完成了这一工作,你只需用 copy 或 move_uploaded_file 函数将临时文件保存起来就可以了