在dsoframer保存文档到服务器时,我采用如下写法
oframe.HttpInit();
//增加Post变量
oframe.HttpAddPostString("ID","111.ppt");
//上传打开的文件
oframe.HttpAddPostCurrFile("FileData", "aa.doc");
//执行上传动作
oframe.HttpPost("http://127.0.0.1:8080/officeonline/office/savedc.php");在savedc.php页面采用如下写法:
<?php$file = fopen("a.txt","w");
 fputs($file,"Hello World. Testing!");
$aa =$_POST["ID"];file_put_contents("test.txt",$aa);
fputs($file,$aa);
if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
fputs($file,"erreo");
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
fputs($file," 3333 ".$_FILES["file"]["type"]);
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      
      
      }
    
  }
fclose($file);?>代码中使用a.txt记录代码运行情况的,结果是:Hello World. Testing!111.ppt 3333
即代码运行到 输出$_FILES["file"]["name"],这些值都是空的。

解决方案 »

  1.   

    Content-Disposition: form-data; name="FileData"; filename="***\Contract.docx"Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
    ------------------------------------------------------------------------------------------------
    http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.jqk8.com剧情看吧
      

  2.   

    肯定會這樣啊,因為后边的部分你是使用echo直接输出到了显示器屏幕,而没有用fputs输出到文件里.所以文件里是空的.
      

  3.   

     HttpInit();
    该方法用于初始化上传接口,不需要设置参数HttpAddPostString(String FieldName, String someValue);
    添加要提交的表单域, FieldName是要上传表单域名称,someValue是表单域值
    例一:
    HttpAddPostString("username", "zhangSan");
    它类似域表单域的
    <input type=text name=username value=zhangSan>HttpAddPostCurrFile(String fileName, String ReName);
    添加当前DSO编辑的文件给上传接口,该接口把文件模拟到成一个表单的文件域,并提交到处理页面。
    例一:
    HttpAddPostCurrFile("File", "");
    该接口模拟表单文件域如下:
    <input type=file name=File >
    注意:第二个参数为空表示控件自动为文件命名,如:temp.doc,如果需要重命名可以在第二个参数指明文件名称,也可在保存页面指定文件名称。HttpPost(String url);
    执行上传操作将文件和表单域提交到url的页面进行保存操作我想将HttpAddPostCurrFile传过来的数据保存为文件,如a.ppt。那请问下savedc.php页面该怎么写,我是PHP初学者。很多东西不懂
      

  4.   

    问题解决了。我现在使用的是dsoframer V2.3.0.0 。
     sacedc.php代码如下:<?phpif ($_FILES["FileData"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["FileData"]["error"] . "<br />";    }
      else
        {
        echo "Upload: " . $_FILES["FileData"]["name"] . "<br />";
        echo "Type: " . $_FILES["FileData"]["type"] . "<br />";
        echo "Size: " . ($_FILES["FileData"]["size"] / 1024) . " Kb<br />";
        echo "Temp file: " . $_FILES["FileData"]["tmp_name"] . "<br />";    if (file_exists("upload/" . $_FILES["FileData"]["name"]))
          {
          echo $_FILES["FileData"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["FileData"]["tmp_name"],
          "upload/" . $_FILES["FileData"]["name"]);
          echo "Stored in: " . "upload/" . $_FILES["FileData"]["name"];
        
          }
        
      }?>