用户上传图片并将路径地址存入数据库中

1,随便编写一写需要用的输入框,然后选择图片上传后提交

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="FileView.php" method="post" enctype="multipart/form-data">
    <label>邮箱</label>
    <div class="from-group">
        <input type="email" class="form-control" id="exampleInputEmail" placeholder="Email" name="email" id="email">
    </div>
    <div>
        <label>密码</label>
        <input type="password" placeholder="密码" name="password" id="password">
    </div>
    <div>
        <label>头像</label>
        <input type="file" name="upFile" id="upFile">
    </div>
    <button type="submit">Submit</button>
</form>
</body>
</html>
<?php
if(!empty($_FILES)) {
    foreach ($_FILES['upFile'] as $name => $value)
        echo $name . '=' . $value . '<br>';
}
?>

2,处理提交过来的数据,并将提交过来的数据根据唯一字段number存入数据库中(这个需要根据自己取得数据库设定,根据用户登录时的内容来判定)

<?php
$email=$_POST['email'];             //获取提交过来的emial
$password = $_POST['password'];      //获取提交过来的password
$fileInfo = $_FILES['upFile'];        //获取提交过来的图片文件
/*遍历图片的数据*/
if(!empty($_FILES)) {       //如果提交过来的图片数据不为空,则遍历一下图片的数据信息(正式使用时删除)
    foreach ($_FILES['upFile'] as $name => $value)
        echo $name . '=' . $value . '<br>';
}
//检测文件扩展名
$allowExt=array('jpeg','jpg','png','gif');
$ext = strtolower(pathinfo($fileInfo['name'],PATHINFO_EXTENSION));   //strtolower把所有字符转换为小写
if (!in_array($ext,$allowExt)){
    echo '不被允许的扩展名';
    exit();
}else{
    echo '允许';
}
/*检测文件类型*/
$allowMime=array('image/jpeg','image/jpg','image/gif','image/png');
if(!in_array($fileInfo['type'],$allowMime)){
    echo '上传文件类型错误';
    exit();
}else{
    echo '文件类型正确';
}
//检测是否为图片
if (!@getimagesize($fileInfo['tmp_name'])){
    echo '不是真实图片';
    exit();
}else{
    echo '是真实图片';
}
/*保存图片*/
$uploadPath = 'images';
if(!file_exists($uploadPath)){
    $result = mkdir($uploadPath);     //生成图片最后保存路径的根目录
}
$uniName=md5(uniqid(microtime(true),true));/*md5加密,唯一命名,生成的是图片的名字*/
$destination = $uploadPath.'/'.$uniName.'.'.$ext.'';        //最后生成的图片的地址
if (@move_uploaded_file($fileInfo['tmp_name'],$destination)){
    echo '上传成功';
    /*其它操作,写入数据库等*/
    $host = "localhost";
    $username = "root";
    $password = "root";

// 创建连接数据库
    $conn = mysqli_connect("localhost","root","root","filecontrol");
// 检测连接
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    echo "连接成功";
    $sql = "INSERT INTO image (number, address)/*number应该根据Cookie作为登录后的唯一标识*/
VALUES (1, '$destination')";

    if ($conn->query($sql) === TRUE) {
        echo "图片地址插入成功";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}else{
    echo '文件移动失败';
    exit();
}
?>

当用户不是第一次上传图片时,需要将之前存储的用户数据删除,这个等我有空了过来改吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以通过以下步骤实现Spring Boot上传图片并将链接地址存入数据库并在前端调用: 1. 在Spring Boot应用程序添加文件上传依赖。 2. 创建一个Controller类,其包含一个处理图片上传请求的方法。 3. 在处理方法,使用MultipartFile对象来处理上传的图片。使用File类将上传的图片保存到服务器上。 4. 创建一个实体类来存储上传图片的信息,例如图片名、图片类型、图片大小和图片链接地址等信息。 5. 创建一个Repository类,用于将上传图片的信息存储到数据库。 6. 在处理方法,将上传图片的信息保存到数据库。 7. 在前端页面,创建一个表单,用于上传图片。在表单添加一个图片选择器,以便用户可以选择要上传的图片。将表单的提交地址设置为处理图片上传请求的Controller方法。 8. 在处理方法,将上传图片的链接地址返回给前端页面,以便用户可以查看上传图片的链接地址。 9. 在前端页面,使用img标签来显示上传的图片。将img标签的src属性设置为上传图片的链接地址。 需要注意的是,为了保证上传图片的安全性,需要对图片的类型和大小进行验证,并对上传图片的存储路径进行限制。可以使用Spring Boot的文件上传工具类来简化这些操作。 以下是一个简单的实现代码示例: 1. 添加文件上传依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> ``` 2. 创建Controller类: ```java @RestController @RequestMapping("/api") public class ImageUploadController { @Autowired private ImageRepository imageRepository; @PostMapping("/uploadImage") public String uploadImage(@RequestParam("file") MultipartFile file) { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); try { Image image = new Image(fileName, file.getContentType(), file.getBytes()); imageRepository.save(image); return "/api/downloadImage/" + image.getId(); } catch (IOException ex) { return "Error uploading image"; } } @GetMapping("/downloadImage/{id}") public ResponseEntity<byte[]> downloadImage(@PathVariable Long id) { Image image = imageRepository.findById(id).get(); return ResponseEntity.ok() .contentType(MediaType.parseMediaType(image.getType())) .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + image.getName() + "\"") .body(image.getData()); } } ``` 3. 创建实体类: ```java @Entity @Table(name = "images") public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String name; @Column(nullable = false) private String type; @Lob @Column(nullable = false) private byte[] data; public Image() {} public Image(String name, String type, byte[] data) { this.name = name; this.type = type; this.data = data; } // getters and setters } ``` 4. 创建Repository类: ```java @Repository public interface ImageRepository extends JpaRepository<Image, Long> {} ``` 5. 在前端页面,创建一个表单: ```html <form method="POST" action="/api/uploadImage" enctype="multipart/form-data"> <input type="file" name="file" accept="image/*"> <button type="submit">Upload</button> </form> ``` 6. 在前端页面,使用img标签显示上传的图片: ```html <img src="/api/downloadImage/{id}"> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祈愿lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值