Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery上传文件(不使用flash插件)_Jquery_Asp Classic - Fatal编程技术网

使用jquery上传文件(不使用flash插件)

使用jquery上传文件(不使用flash插件),jquery,asp-classic,Jquery,Asp Classic,当我删除jquery脚本代码并提交时,代码成功上载文件。但在下面的代码中,output div中的文本将消失,来自其他页面的新文本也不会写入其中 <script type="text/javascript"> $(document).ready(function(){ $("[name='video-submit']").click(function() { $.ajax({ type: "POST", enc

当我删除jquery脚本代码并提交时,代码成功上载文件。但在下面的代码中,output div中的文本将消失,来自其他页面的新文本也不会写入其中

<script type="text/javascript">
$(document).ready(function(){
    $("[name='video-submit']").click(function() { 
        $.ajax({
            type: "POST",
            enctype: 'multipart/form-data',
            data: $("#VideoForm").serialize(),
            url: "cp.cs.asp?Process=UploadVideo",
            success: function(output) {
                $("#output").html(output);
            },
            error: function(output) {
                $("#output").html(output);
            }
        }); //close $.ajax(
    });
});
</script>
  <div id="form">
        <form  method="post" id="VideoForm">
            <fieldset>
            <div class="required">                
                <label for="VideoURL">Video File</label>
                <input type="file" size="23" name="VideoFile">
                <input type="button" name="video-submit" id="video-submit" value="Upload" />
            </div>
            </fieldset>
        </form>
            <div id="output">
            fds
            </div> 

$(文档).ready(函数(){
$(“[name='video-submit']”)。单击(函数(){
$.ajax({
类型:“POST”,
enctype:“多部分/表单数据”,
数据:$(“#VideoForm”).serialize(),
url:“cp.cs.asp?进程=上传视频”,
成功:功能(输出){
$(“#输出”).html(输出);
},
错误:函数(输出){
$(“#输出”).html(输出);
}
});//关闭$.ajax(
});
});
视频文件
fds

您不能使用
$(“#VideoForm”).serialize()
上载文件,因为这将只序列化标准输入,而不序列化文件。您可能需要使用


顺便说一句,这是非常明显的。想象一下,如果这是可能的话。如果你访问一个恶意网站,它可能会在没有用户同意的情况下序列化并窃取你硬盘上的文件。

你不能使用
$(“#VideoForm”)。serialize()
因为这将只序列化标准输入,而不序列化文件。您可能需要使用


顺便说一句,这是非常明显的。想象一下,如果这是可能的话。如果你访问一个恶意网站,它可能会在没有用户同意的情况下序列化并窃取你硬盘上的文件。

你不能异步上传文件

您可以尝试的一种方法是在页面中放置隐藏的iframe,表单应指向此iframe:

<form method="post" action="cp.cs.asp?Process=UploadVideo" target="hiddenIframe">

<iframe style="display:none">

您的cp.cs.asp文件可以将文件上载到服务器,然后返回您刚刚上载的文件的路径,然后您可以使用所需的值更新父页面,并根据需要显示上载的图像。通过这种方式,您可以上载文件,用户会感觉到它是异步完成的

你可以在这个网站上找到一个简单的例子

服务器代码是用PHP编写的,但您可以轻松地将其应用于ASP、ASP.NET、ASP.NET MVC等


希望有帮助!

您不能异步上传文件

您可以尝试的一种方法是在页面中放置隐藏的iframe,表单应指向此iframe:

<form method="post" action="cp.cs.asp?Process=UploadVideo" target="hiddenIframe">

<iframe style="display:none">

您的cp.cs.asp文件可以将文件上载到服务器,然后返回您刚刚上载的文件的路径,然后您可以使用所需的值更新父页面,并根据需要显示上载的图像。通过这种方式,您可以上载文件,用户会感觉到它是异步完成的

你可以在这个网站上找到一个简单的例子

服务器代码是用PHP编写的,但您可以轻松地将其应用于ASP、ASP.NET、ASP.NET MVC等


希望有帮助!

错误控制台中是否有任何消息?您是否可以尝试使用超链接而不是按钮?这避免了默认提交行为在此处也起作用的可能性。错误控制台中是否有任何消息?您是否可以尝试使用超链接而不是按钮?这避免了默认提交行为在此处起作用的可能性埃哈维尔也在这里发挥作用。