【问题标题】:Doing PHP Submit and Fileupload from same button从同一个按钮执行 PHP 提交和文件上传
【发布时间】:2011-01-17 23:26:58
【问题描述】:

我正在写一个页面,用户可以填写表单数据,选择两个文件上传,然后点击提交将表单数据传递到PHP页面,两个文件也将被上传。

问题是提交按钮似乎只能是“提交”或“文件上传”。它不能两者兼得……或者可以吗?

这里是 HTML 文件的 gyst (足以理解这一点......我希望)

  <form class='form' name="frm_new_session" method="POST" enctype="multipart/form-data">  
    <div class='frm_row'>  
        <label>Title</label>  
        <input id="titleF" type='text' name="title" size='50' />  
        <input type="hidden" name="_chkuser" value="1"/>  
    </div>  
    <div class='frm_row'>  
        <label>Description</label>  
        <textarea id="descF" rows='3' cols='53' name="desc"></textarea>  
    </div>  
    <div class='frm_row'>  
        <label>Image</label>  
        <input id="imageF" type="file" name="uploadedimage">  
        <input type="hidden" name=MAX_FILE_SIZE" value='50000000'/>  
        </input> <br />  
    </div>  
    <div class='frm_row'>  
        <label>Session Media</label>  
        <input type='radio' id="mediaF" name="media" />  
        Upload: <input type='file' name="fileupload">  
        </input> <br />  
        <input type='radio' id="mediaF" name="media" />  
            Enter media URL:  
            <input type='text' size='75' name="mediaFile"/>  
        </input>  
    </div>                  
    <div class='frm_row'>  
        <input type="submit" value="Save Session"/>                     
        <div class='btn' type="submit" style='float: left;'>  
        <a href='#' id='btn_save_session'><span>Save Session</span></a>  
        <div class='kill_clear'></div>  
    </div>  
 </form>  

我知道我可以使用多个表单来做到这一点,但我想避免这种情况,并享受只有一个“保存”按钮。

有什么建议吗?

【问题讨论】:

  • 你绝对可以一键完成。不知道你做错了什么,但肯定有可能。在目标页面上 print_r($_POST) 会得到什么?
  • 或者当你print_r($_FILES)

标签: php html file-upload webforms


【解决方案1】:

我不明白这个问题,信息将在 $_POST 数组中,文件在 $_FILES 数组中。 但是,您在 MAX_FILE_SIZE 中缺少双引号,我测试了以下代码,它可以工作:D

<?php
print_r($_POST);
print_r($_FILES);
?>
  <form class='form' name="frm_new_session" method="POST" enctype="multipart/form-data">  
    <div class='frm_row'>  
        <label>Title</label>  
        <input id="titleF" type='text' name="title" size='50' />  
        <input type="hidden" name="_chkuser" value="1"/>  
    </div>  
    <div class='frm_row'>  
        <label>Description</label>  
        <textarea id="descF" rows='3' cols='53' name="desc"></textarea>  
    </div>  
    <div class='frm_row'>  
        <label>Image</label>  
        <input id="imageF" type="file" name="uploadedimage">  
        <input type="hidden" name="MAX_FILE_SIZE" value='50000000'/>  
        </input> <br />  
    </div>  
    <div class='frm_row'>  
        <label>Session Media</label>  
        <input type='radio' id="mediaF" name="media" />  
        Upload: <input type='file' name="fileupload">  
        </input> <br />  
        <input type='radio' id="mediaF" name="media" />  
            Enter media URL:  
            <input type='text' size='75' name="mediaFile"/>  
        </input>  
    </div>                  
    <div class='frm_row'>  
        <input type="submit" value="Save Session"/>                     
        <div class='btn' type="submit" style='float: left;'>  
        <a href='#' id='btn_save_session'><span>Save Session</span></a>  
        <div class='kill_clear'></div>  
    </div>  
 </form>  

【讨论】:

    【解决方案2】:
    <form action="/add-news.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="5242880" />
    <input type="text" name="title" />
    <input type="file" name="image" />
    <textarea rows="40" cols="50" name="content"></textarea>
    </form>
    

    尝试添加隐藏字段 MAX_FILE_SIZE,其中值是文件的最大大小(以字节为单位)。 它对我有用。

    你的意思是:“不能两者兼得”,指征是什么?

    【讨论】:

    • 嗯...好吧,我实际上有 MAX_FILE_SIZE 在那里。
    • 理想情况下,我希望能够上传文件,并使用相同的提交按钮发布输入值。诚然,我在 PHP 方面的经验有点有限,但据我了解,文件上传只有在按下 action='file upload' 的按钮时才会触发。或者,仅当 SUBMIT 按钮的 action='submit' 时才提交表单数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    相关资源
    最近更新 更多