PHP/Javascript-如果PHP文件上传成功,请检查JS


PHP/Javascript - Check in JS if PHP file upload was successful

那里。我有一个页面,它制作了一个表单,其中包含在Bootstrap模式中上传的文件。

表单的提交是在Javascript上完成的,在重新加载页面之前,我需要获得一条关于文件上传的消息,以显示给用户。以下是示例:

HTML

<div id="modal-insert-occurrence-form" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="modal-insert-occurrence-label" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="modal-insert-occurrence-label">Insert occurrence</h3>
    </div>
    <div class="modal-body">
        <form id="insert-occurrence-form">
            <fieldset>
                <label for="obs-occurrence">Obs</label>
                <textarea name="obs-occurrence" id="obs-occurrence" rows=3 class="span4"></textarea>
                <label for="image-occurrence">Screenshot</label>
                <input type="file" name="image-occurrence" id="image-occurrence" />
            </fieldset>
        </form>
    </div>
    <div class="modal-footer">
        <button id="modal-insert-occurrence-submit" class="btn btn-info" onClick="fileUp('insert-occurrence-form','ajax/upload.php');" >Insert</button>
        <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
    </div>
</div>

JavaScript

function fileUp(form_id, action_url) {
    var form = document.getElementById(form_id);
    form.setAttribute("action", action_url);
    form.setAttribute("method", "post");
    form.setAttribute("enctype", "multipart/form-data");
    form.setAttribute("encoding", "multipart/form-data");
    form.submit();
    //Need to show the message here!
    location.reload();
}

我能做什么?谢谢

基本上。。。你不能"如果PHP文件上传成功,就签入JS"。Js是客户端,php是服务器端。由于您已经在表单提交时重新加载了页面,因此您可以做的是在php中检查文件是否已上传,并在js中设置一个带有答案的var。类似于:

   <script>
         var uploaded = <?php echo $uploadSuccess; ?>;
   </script>

但这有点乱。一个更干净的解决方案是发送一个ajax请求进行检查。