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的或是大家谁用过?

解决方案 »

  1.   

    .net 不是很了解,但感觉和 JSP 差不多  ..
    接收文件,把文件存储为 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' );
      

  2.   

    move_uploaded_file这个函数就是精髓咯
      

  3.   

    Request.InputStream 是上传文件的数据流
    除了 php ,其他 web 语言都需要对他进行处理(尽管对象名可能不一样)
    而 php 的设计者已经周到的替你完成了这一工作,你只需用 copy 或 move_uploaded_file 函数将临时文件保存起来就可以了
      

  4.   

    楼主的目的,是不是想上传图片或者文件到服务器上呢?如上面所说的那样,用copy 或 move_uploaded_file 函数就可以办到呀。
      

  5.   

    感谢大家的回答,不是单纯的直接上传文件到服务器。前台是FLASH,生成的图片以Request.InputStream流提前到后台PHP页面。PHP要把流保存成图片。我用ASPX解决没有问题,就是上面的代码。用PHP不知道怎么弄啊~
      

  6.   

    xuzuning:只需用 copy 或 move_uploaded_file 函数将临时文件保存起来就可以了非常感谢,我没法试,不会PHP,我让别人试试吧。