html上传文件代码有问题

html代码如下,选择文件上传以后没有上传,希望帮忙修改一下指出问题能够正常上传,求指导,谢谢各位


html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    
head>
<body>

<form method="post" enctype="multipart/form-data" action="/">
    <p>请选择要上传的文件:p>
    <p><input type="file" name="file" />p>
    <p><input type="submit" value="上传" />p>
form>

body>
html>

以下文件附图

img

img

img


测试系统是centos 7.6,宝塔平台,apache环境,本地试了也是不行

你这个只有前端,你需要有后端服务接收前端上传的文件,然后后台代码进行处理。 参考我这个

这个是可以上传的html代码;
具体你不能上传,是哪里有提示说不能上传?
这个如果后端接收不了,那就 看看后端的处理其他情况。
最好可以有日志。

有疑问,可以来交流

可以上传成功,但是你没有后端数据库接收啊,怎么能够保存你上传的数据呢

单独一个html怎么可能上传
你要下载一个文件管理系统php才行

你这样上传,没法保存的,要传到后端,借助后端数据库保存起来。

这只有一个前端页面,当然不能上传呀,你还要结合后端,前端将这个发给后端,后端从这个request.file中提取出文件,保存到静态文件夹,同时一般也会结合数据库将这个文件的资源路径保存在数据库。
比如你可以用python的flask框架做后端接受文件。

from flask import Flask, request  # 导入request对象
 
app = Flask(__name__)
 
@app.route("/upload", methods=["POST"])
def upload():
    file_obj = request.files.get("pic")  # "pic"对应前端表单name属性
    if file_obj is None:
        # 表示没有发送文件
        return "未上传文件"
 
    # 将文件保存到本地
    # # 1. 创建一个文件
    # f = open("./demo.png", "wb")
    # # 2. 向文件写内容
    # data = file_obj.read()
    # f.write(data)
    # # 3. 关闭文件
    # f.close()
 
    # 直接使用上传的文件对象保存
    file_obj.save("./demo1.png")
    return "上传成功"
 
 
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)

这个需要有一个文件服务器接受一下,前端只是执行这个动作,可以给后端处理一下保存到文件服务器指定路径

代码没问题,文件上传需要两部分,一部分是你写的html还有一部分是服务器端实现,用来接收文件的代码,也就是你的form表单里面action填写的url,这个url你需要用后端选择一种语言来实现,一般有java,php,python,nodejs

缺了后端接收的服务了,需要开发配套的后台。

你这个有几个问题,第一,你下面这个 action="/"

<form method="post" enctype="multipart/form-data" action="/">

表示的提交到首页,但是看你截图的目录里没有index类似的首页文件
第二,上传文件,需要后端语言来接受和写入文件,但是你目录也没有后端文件,就如上面第一点提到的,你提交到的是首页文件。所以需要有对应的后端接受文件来上传文件,假设,你后端语言用php,那么你可以建立一个index.php文件在你目录下,然后index.php代码如下:

<?php
define('WEBROOT', dirname(__FILE__));
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png","bmp");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20480000)   // 小于 20M,这个自己限制
&& in_array($extension, $allowedExts))
{
    $oldname=$_FILES["file"]["name"];
        $fileextensionname=strtolower(preg_replace("/.+(\..+)/i","\\1",$oldname));
        $Num2 = mt_rand(20,100);
        $filename =date('YmdHis').'_'.$Num2.$fileextensionname; 
     $imgsetpath=WEBROOT;
     $directory=date('Y/m/d');
                if(!file_exists($imgsetpath.$directory)){
                    if (mkdir($imgsetpath.$directory, 0777, true)){
                        chmod($imgsetpath.$directory, 0777 );
                    }else{
                        exit("创建文件夹失败 ".$imgsetpath.$directory);
                    }
                }
    $size=$_FILES["file"]["size"];
    if($size>3*1024*1024/10){
        exit("上传失败,文件大小 ".(round($size/1024, 2)).'KB'.',最大为300KB!!!');
    }
 if(copy($_FILES["file"]["tmp_name"],$imgsetpath.$directory."/".$filename)){
    
 }else{
    exit('文件大小:'.(round($size/1024, 2)).'KB'.'图片上传失败!!!');
 }
 exit("上传成功"); 
}else
{
    exit("上传错误 ");
} 
?>

关于html上传文件的问题以及解决方法
https://blog.csdn.net/weixin_39541600/article/details/117853915
希望对你有所帮助

form表单会向你写的URL提交请求,也就是由服务器响应,但是在/这个路径下没有相关的处理的程序,所以就会not found

前端进行文件上传之后。文件其实是上传到了后端,也就是服务器上,服务器会自动运行后端的文件处理的代码。将文件重命名并放在一个文件夹里面。之后文件的那个路径要保存在数据库里面。前端要去拿这个文件的时候,要展示的时候呢,就会通过数据库的路径去拿到服务器上的文件。你这里只有前端没有后端以及相关的代码。你文件是提交成功了,但是你后端没有处理,你得自己写个后端去把那个文件存起来,还得学会使用数据库,你只写前端,肯定是不行的呀,因为这个文件是要储存在服务器上面。

单纯的html ,没法存,需要和后端连接

img


文件上传路径都没指定,指定下上传路径