【探花交友】保存用户信息、上传用户头像、用户信息管理
文章目录
1.3、保存用户信息
1.4、上传用户头像
2、用户信息管理
2.1、查询用户资料
2.2、更新用户资料
1.3、保存用户信息
1.3.1、接口文档
YAPI接口地址:http://192.168.136.160:3000/project/19/interface/api/88
1.3.2、需求分析
数据库表
tb_user_info(用户基本资料表)
用户表和用户信息表是一对一的关系,两者采用主键关联的形式配置
主键关联:用户表主键和用户资料表主键要保持一致(如:用户表id=1,此用户的资料表id=1)
执行流程
手机端发送请求到消费者
消费者构造数据,调用提供者
消费者完成业务处理,操作数据库
1.3.3、代码实现
UserInfo实体类
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Data</span>
<span style="color:#555555">@NoArgsConstructor</span>
<span style="color:#555555">@AllArgsConstructor</span>
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserInfo</span> <span style="color:#770088">implements</span> <span style="color:#000000">Serializable</span> {
<span style="color:#aa5500">/**</span><span style="color:#aa5500">* 由于userinfo表和user表之间是一对一关系</span><span style="color:#aa5500">* userInfo的id来源于user表的id</span><span style="color:#aa5500">*/</span><span style="color:#555555">@TableId</span>(<span style="color:#000000">type</span><span style="color:#981a1a">=</span> <span style="color:#000000">IdType</span>.<span style="color:#000000">INPUT</span>)<span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">id</span>; <span style="color:#aa5500">//用户id</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">nickname</span>; <span style="color:#aa5500">//昵称</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">avatar</span>; <span style="color:#aa5500">//用户头像</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">birthday</span>; <span style="color:#aa5500">//生日</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">gender</span>; <span style="color:#aa5500">//性别</span><span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">age</span>; <span style="color:#aa5500">//年龄</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">city</span>; <span style="color:#aa5500">//城市</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">income</span>; <span style="color:#aa5500">//收入</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">education</span>; <span style="color:#aa5500">//学历</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">profession</span>; <span style="color:#aa5500">//行业</span><span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">marriage</span>; <span style="color:#aa5500">//婚姻状态</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">tags</span>; <span style="color:#aa5500">//用户标签:多个用逗号分隔</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">coverPic</span>; <span style="color:#aa5500">// 封面图片</span><span style="color:#770088">private</span> <span style="color:#000000">Date</span> <span style="color:#000000">created</span>;<span style="color:#770088">private</span> <span style="color:#000000">Date</span> <span style="color:#000000">updated</span>;
<span style="color:#aa5500">//用户状态,1为正常,2为冻结</span><span style="color:#555555">@TableField</span>(<span style="color:#000000">exist</span> <span style="color:#981a1a">=</span> <span style="color:#221199">false</span>)<span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">userStatus</span> <span style="color:#981a1a">=</span> <span style="color:#aa1111">"1"</span>;
}</span></span>
UserController
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@RestController</span>
<span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/user"</span>)
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserController</span> {
<span style="color:#555555">@Autowired</span><span style="color:#770088">private</span> <span style="color:#000000">UserInfoService</span> <span style="color:#000000">userInfoService</span>;
<span style="color:#aa5500">/**</span><span style="color:#aa5500">* 保存用户信息</span><span style="color:#aa5500">* UserInfo</span><span style="color:#aa5500">* 请求头中携带token</span><span style="color:#aa5500">*/</span><span style="color:#555555">@PostMapping</span>(<span style="color:#aa1111">"/loginReginfo"</span>)<span style="color:#770088">public</span> <span style="color:#000000">ResponseEntity</span> <span style="color:#000000">loginReginfo</span>(<span style="color:#555555">@RequestBody</span> <span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>,<span style="color:#555555">@RequestHeader</span>(<span style="color:#aa1111">"Authorization"</span>) <span style="color:#008855">String</span> <span style="color:#000000">token</span>) {<span style="color:#aa5500">//1、解析token</span><span style="color:#000000">Claims</span> <span style="color:#000000">claims</span> <span style="color:#981a1a">=</span> <span style="color:#000000">JwtUtils</span>.<span style="color:#000000">getClaims</span>(<span style="color:#000000">token</span>);<span style="color:#008855">Integer</span> <span style="color:#000000">id</span> <span style="color:#981a1a">=</span> (<span style="color:#008855">Integer</span>) <span style="color:#000000">claims</span>.<span style="color:#000000">get</span>(<span style="color:#aa1111">"id"</span>);<span style="color:#aa5500">//2、向userinfo中设置用户id</span><span style="color:#000000">userInfo</span>.<span style="color:#000000">setId</span>(<span style="color:#008855">Long</span>.<span style="color:#000000">valueOf</span>(<span style="color:#000000">id</span>));<span style="color:#aa5500">//3、调用service</span><span style="color:#000000">userInfoService</span>.<span style="color:#000000">save</span>(<span style="color:#000000">userInfo</span>);<span style="color:#770088">return</span> <span style="color:#000000">ResponseEntity</span>.<span style="color:#000000">ok</span>(<span style="color:#221199">null</span>);}
}</span></span>
UserInfoService
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Service</span>
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserInfoService</span> {
<span style="color:#555555">@DubboReference</span><span style="color:#770088">private</span> <span style="color:#000000">UserInfoApi</span> <span style="color:#000000">userInfoApi</span>;
<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#000000">save</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>) {<span style="color:#000000">userInfoApi</span>.<span style="color:#000000">save</span>(<span style="color:#000000">userInfo</span>);}
}</span></span>
UserInfoApi
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">public</span> <span style="color:#770088">interface</span> <span style="color:#0000ff">UserInfoApi</span> {<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#000000">save</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>);
}</span></span>
UserInfoApiImpl
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@DubboService</span>
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserInfoApiImpl</span> <span style="color:#770088">implements</span> <span style="color:#000000">UserInfoApi</span> {
<span style="color:#555555">@Autowired</span><span style="color:#770088">private</span> <span style="color:#000000">UserInfoMapper</span> <span style="color:#000000">userInfoMapper</span>;
<span style="color:#555555">@Override</span><span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#000000">save</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>) {<span style="color:#000000">userInfoMapper</span>.<span style="color:#000000">insert</span>(<span style="color:#000000">userInfo</span>);}
}</span></span>
UserInfoMapper
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">public</span> <span style="color:#770088">interface</span> <span style="color:#0000ff">UserInfoMapper</span> <span style="color:#770088">extends</span> <span style="color:#000000">BaseMapper</span><span style="color:#981a1a"><</span><span style="color:#000000">UserInfo</span><span style="color:#981a1a">></span> {
}</span></span>
1.4、上传用户头像
1.4.1、需求分析
接口文档
YAPI地址:http://192.168.136.160:3000/project/19/interface/api/91
文件上传采用POST传递,mvc中经过文件解析器转化为MultipartFile对象处理
后续请求中,请求headr中都有Authorization参数。
执行流程
1.4.2、代码实现
UsersControler
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/**</span><span style="color:#aa5500">* 更新用户资料</span><span style="color:#aa5500">*/</span>
<span style="color:#555555">@PutMapping</span>
<span style="color:#770088">public</span> <span style="color:#000000">ResponseEntity</span> <span style="color:#0000ff">updateUserInfo</span>(<span style="color:#555555">@RequestBody</span> <span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>,<span style="color:#555555">@RequestHeader</span>(<span style="color:#aa1111">"Authorization"</span>) <span style="color:#008855">String</span> <span style="color:#000000">token</span>) {<span style="color:#000000">Claims</span> <span style="color:#000000">claims</span> <span style="color:#981a1a">=</span> <span style="color:#000000">JwtUtils</span>.<span style="color:#000000">getClaims</span>(<span style="color:#000000">token</span>);<span style="color:#008855">Integer</span> <span style="color:#000000">id</span> <span style="color:#981a1a">=</span> (<span style="color:#008855">Integer</span>) <span style="color:#000000">claims</span>.<span style="color:#000000">get</span>(<span style="color:#aa1111">"id"</span>);<span style="color:#000000">userInfo</span>.<span style="color:#000000">setId</span>(<span style="color:#008855">Long</span>.<span style="color:#000000">valueOf</span>(<span style="color:#000000">id</span>));<span style="color:#000000">userInfoService</span>.<span style="color:#000000">update</span>(<span style="color:#000000">userInfo</span>);<span style="color:#770088">return</span> <span style="color:#000000">ResponseEntity</span>.<span style="color:#000000">ok</span>(<span style="color:#221199">null</span>);
}</span></span>
UserInfoService
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">//更新用户头像</span>
<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#0000ff">updateHead</span>(<span style="color:#000000">MultipartFile</span> <span style="color:#000000">headPhoto</span>, <span style="color:#008855">Long</span> <span style="color:#000000">id</span>) <span style="color:#770088">throws</span> <span style="color:#000000">IOException</span> {<span style="color:#aa5500">//1、将图片上传到阿里云oss</span><span style="color:#008855">String</span> <span style="color:#000000">imageUrl</span> <span style="color:#981a1a">=</span> <span style="color:#000000">ossTemplate</span>.<span style="color:#000000">upload</span>(<span style="color:#000000">headPhoto</span>.<span style="color:#000000">getOriginalFilename</span>(), <span style="color:#000000">headPhoto</span>.<span style="color:#000000">getInputStream</span>());<span style="color:#aa5500">//2、调用百度云判断是否包含人脸</span><span style="color:#008855">boolean</span> <span style="color:#000000">detect</span> <span style="color:#981a1a">=</span> <span style="color:#000000">aipFaceTemplate</span>.<span style="color:#000000">detect</span>(<span style="color:#000000">imageUrl</span>);<span style="color:#aa5500">//2.1 如果不包含人脸,抛出异常</span><span style="color:#770088">if</span>(<span style="color:#981a1a">!</span><span style="color:#000000">detect</span>) {<span style="color:#770088">throw</span> <span style="color:#770088">new</span> <span style="color:#000000">RuntimeException</span>();}<span style="color:#770088">else</span>{<span style="color:#aa5500">//2.2 包含人脸,调用API更新</span><span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span> <span style="color:#981a1a">=</span> <span style="color:#770088">new</span> <span style="color:#000000">UserInfo</span>();<span style="color:#000000">userInfo</span>.<span style="color:#000000">setId</span>(<span style="color:#000000">id</span>);<span style="color:#000000">userInfo</span>.<span style="color:#000000">setAvatar</span>(<span style="color:#000000">imageUrl</span>);<span style="color:#000000">userInfoApi</span>.<span style="color:#000000">update</span>(<span style="color:#000000">userInfo</span>);}
}</span></span>
UserInfoApi
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#0000ff">update</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>);</span></span>
UserInfoApiImpl
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Override</span>
<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#0000ff">update</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>) {<span style="color:#000000">userInfoMapper</span>.<span style="color:#000000">updateById</span>(<span style="color:#000000">userInfo</span>);
}</span></span>
2、用户信息管理
2.1、查询用户资料
2.1.1、接口文档
YAPI地址:http://192.168.136.160:3000/project/19/interface/api/265
参数userID: 用户id,当不传递时,查询当前用户的资料信息
2.1.2、代码实现
UserInfoVo
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Data</span>
<span style="color:#555555">@NoArgsConstructor</span>
<span style="color:#555555">@AllArgsConstructor</span>
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserInfoVo</span> <span style="color:#770088">implements</span> <span style="color:#000000">Serializable</span> {
<span style="color:#770088">private</span> <span style="color:#008855">Long</span> <span style="color:#000000">id</span>; <span style="color:#aa5500">//用户id</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">nickname</span>; <span style="color:#aa5500">//昵称</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">avatar</span>; <span style="color:#aa5500">//用户头像</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">birthday</span>; <span style="color:#aa5500">//生日</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">gender</span>; <span style="color:#aa5500">//性别</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">age</span>; <span style="color:#aa5500">//年龄</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">city</span>; <span style="color:#aa5500">//城市</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">income</span>; <span style="color:#aa5500">//收入</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">education</span>; <span style="color:#aa5500">//学历</span><span style="color:#770088">private</span> <span style="color:#008855">String</span> <span style="color:#000000">profession</span>; <span style="color:#aa5500">//行业</span><span style="color:#770088">private</span> <span style="color:#008855">Integer</span> <span style="color:#000000">marriage</span>; <span style="color:#aa5500">//婚姻状态</span>
}</span></span>
UsersController
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@RestController</span>
<span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"/users"</span>)
<span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UsersControler</span> {
<span style="color:#555555">@Autowired</span><span style="color:#770088">private</span> <span style="color:#000000">UserInfoService</span> <span style="color:#000000">userInfoService</span>;
<span style="color:#aa5500">/**</span><span style="color:#aa5500">* 查询用户资料</span><span style="color:#aa5500">*/</span><span style="color:#555555">@GetMapping</span><span style="color:#770088">public</span> <span style="color:#000000">ResponseEntity</span> <span style="color:#000000">users</span>(<span style="color:#008855">Long</span> <span style="color:#000000">userID</span>,<span style="color:#555555">@RequestHeader</span>(<span style="color:#aa1111">"Authorization"</span>) <span style="color:#008855">String</span> <span style="color:#000000">token</span>) {<span style="color:#770088">if</span>(<span style="color:#000000">userID</span> <span style="color:#981a1a">==</span> <span style="color:#221199">null</span>) {<span style="color:#000000">Claims</span> <span style="color:#000000">claims</span> <span style="color:#981a1a">=</span> <span style="color:#000000">JwtUtils</span>.<span style="color:#000000">getClaims</span>(<span style="color:#000000">token</span>);<span style="color:#008855">Integer</span> <span style="color:#000000">id</span> <span style="color:#981a1a">=</span> (<span style="color:#008855">Integer</span>) <span style="color:#000000">claims</span>.<span style="color:#000000">get</span>(<span style="color:#aa1111">"id"</span>);<span style="color:#000000">userID</span> <span style="color:#981a1a">=</span> <span style="color:#008855">Long</span>.<span style="color:#000000">valueOf</span>(<span style="color:#000000">id</span>);}<span style="color:#000000">UserInfoVo</span> <span style="color:#000000">userInfo</span> <span style="color:#981a1a">=</span> <span style="color:#000000">userInfoService</span>.<span style="color:#000000">findById</span>(<span style="color:#000000">userID</span>);<span style="color:#770088">return</span> <span style="color:#000000">ResponseEntity</span>.<span style="color:#000000">ok</span>(<span style="color:#000000">userInfo</span>);}
}</span></span>
UserInfoService
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">//根据id查寻</span>
<span style="color:#770088">public</span> <span style="color:#000000">UserInfoVo</span> <span style="color:#0000ff">findById</span>(<span style="color:#008855">Long</span> <span style="color:#000000">id</span>) {<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span> <span style="color:#981a1a">=</span> <span style="color:#000000">userInfoApi</span>.<span style="color:#000000">findById</span>(<span style="color:#000000">id</span>);
<span style="color:#000000">UserInfoVo</span> <span style="color:#000000">vo</span> <span style="color:#981a1a">=</span> <span style="color:#770088">new</span> <span style="color:#000000">UserInfoVo</span>();
<span style="color:#000000">BeanUtils</span>.<span style="color:#000000">copyProperties</span>(<span style="color:#000000">userInfo</span>,<span style="color:#000000">vo</span>); <span style="color:#aa5500">//copy同名同类型的属性</span>
<span style="color:#770088">if</span>(<span style="color:#000000">userInfo</span>.<span style="color:#000000">getAge</span>() <span style="color:#981a1a">!=</span> <span style="color:#221199">null</span>) {<span style="color:#000000">vo</span>.<span style="color:#000000">setAge</span>(<span style="color:#000000">userInfo</span>.<span style="color:#000000">getAge</span>().<span style="color:#000000">toString</span>());}
<span style="color:#770088">return</span> <span style="color:#000000">vo</span>;
}</span></span>
UserInfoApiImpl
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Override</span>
<span style="color:#770088">public</span> <span style="color:#000000">UserInfo</span> <span style="color:#0000ff">findById</span>(<span style="color:#008855">Long</span> <span style="color:#000000">id</span>) {<span style="color:#770088">return</span> <span style="color:#000000">userInfoMapper</span>.<span style="color:#000000">selectById</span>(<span style="color:#000000">id</span>);
}</span></span>
2.2、更新用户资料
2.2.1、接口文档
YAPI地址:http://192.168.136.160:3000/project/19/interface/api/259
2.2.2、代码实现
UsersController
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">/**</span><span style="color:#aa5500">* 更新用户资料</span><span style="color:#aa5500">*/</span>
<span style="color:#555555">@PutMapping</span>
<span style="color:#770088">public</span> <span style="color:#000000">ResponseEntity</span> <span style="color:#0000ff">updateUserInfo</span>(<span style="color:#555555">@RequestBody</span> <span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>,<span style="color:#555555">@RequestHeader</span>(<span style="color:#aa1111">"Authorization"</span>) <span style="color:#008855">String</span> <span style="color:#000000">token</span>) {<span style="color:#000000">Claims</span> <span style="color:#000000">claims</span> <span style="color:#981a1a">=</span> <span style="color:#000000">JwtUtils</span>.<span style="color:#000000">getClaims</span>(<span style="color:#000000">token</span>);<span style="color:#008855">Integer</span> <span style="color:#000000">id</span> <span style="color:#981a1a">=</span> (<span style="color:#008855">Integer</span>) <span style="color:#000000">claims</span>.<span style="color:#000000">get</span>(<span style="color:#aa1111">"id"</span>);<span style="color:#000000">userID</span> <span style="color:#981a1a">=</span> <span style="color:#008855">Long</span>.<span style="color:#000000">valueOf</span>(<span style="color:#000000">id</span>);<span style="color:#000000">userInfo</span>.<span style="color:#000000">setId</span>(<span style="color:#000000">UserHolder</span>.<span style="color:#000000">getUserId</span>());<span style="color:#000000">userInfoService</span>.<span style="color:#000000">update</span>(<span style="color:#000000">userInfo</span>);<span style="color:#770088">return</span> <span style="color:#000000">ResponseEntity</span>.<span style="color:#000000">ok</span>(<span style="color:#221199">null</span>);
}</span></span>
UserInfoService
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500">//更新</span>
<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#0000ff">update</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>) {<span style="color:#000000">userInfoApi</span>.<span style="color:#000000">update</span>(<span style="color:#000000">userInfo</span>);
}</span></span>
UserInfoApiImpl
<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#555555">@Override</span>
<span style="color:#770088">public</span> <span style="color:#008855">void</span> <span style="color:#0000ff">update</span>(<span style="color:#000000">UserInfo</span> <span style="color:#000000">userInfo</span>) {<span style="color:#000000">userInfoMapper</span>.<span style="color:#000000">updateById</span>(<span style="color:#000000">userInfo</span>);
}</span></span>
【探花交友】保存用户信息、上传用户头像、用户信息管理相关推荐
- WordPress怎么使用支持注册用户上传自定义头像功能?
WordPress怎么使用支持注册用户上传自定义头像功能?认Wordpress支持显示Gravatar头像,但目前由于众所周知的原因,申请Gravatar头像比较困难只能显示默认的古怪头像,对注册用户 ...
- 文件上传与下载,用户登录和拦截与三层架构
文件上传 文件上传: 将用户本地磁盘中的文件提交保存到服务器中的磁盘上. 搭建一个新 Web 项目编写 register.jsp 编写一个上传的表单,但要求如下: 上传表单的编码格式 enctype= ...
- python爬取知乎用户信息泄露_scrapy实战--爬取知乎用户信息(上)
背景 使用Scrapy分布式爬取知乎所有用户个人信息! 项目地址 爬取知乎所有用户 大规模抓取静态网页Scrapy绝对是利器!当然也可以使用requests库来自己实现,但是要自己写过滤器等组件,既然 ...
- 多个ajaxFileUpload上传图片与ajax合用,解决同步问题,用户随意上传多少图片都可以;
需求描述:因ajaxFileUpload 文件上传插件是异步请求,但是业务上需要先得到 ajaxFileUpload 请求后的图片url, 在通过ajax 把图片URL等其它需要录入的数据一并写入数据 ...
- vsftp虚拟用户无法上传文件,解决办法
vsftp虚拟用户无法上传文件,解决办法 1.打开/etc/vsftpd 目录中的vsftpd.conf文件,查找:guest_username=xxx,这里指的是vsftpd虚拟用户对应的实 际系统 ...
- linux ftp匿名只能下载,04. 创建匿名用户能够上传下载,或只能下载的目录
Re:FTP 文件传输服务 ========================== FTP 服务不论在企业或教学中,是很常用的文件共享方式,它既可以做到匿名访问,也可以做到用户名和密码访问,更可以做到只 ...
- ubuntu 搭建一个没有上传限制,支持多用户访问,管理用户下载上传,界面优雅,文件互通的网盘(支持nas)
一个没有上传限制,支持多用户访问,管理用户下载上传,界面优雅,文件互通的网盘! (Alist + Samba) 运行环境 ubuntu 20.04 Alist `Alist` 官网 https:// ...
- 关于VSFTPD匿名用户文件上传权限的问题
https://blog.csdn.net/m0_37355951/article/details/76974622 配置详细 https://blog.csdn.net/u014008779/art ...
- linux匿名用户有写入权限,Linux vsftpd匿名用户开放上传,写入,创建,删除权限
Linux vsftpd匿名用户开放上传,写入,创建,删除权限 Linux vsftpd匿名用户开放上传,写入,创建,删除权限 安装vsftpd软件包 编辑配置文件,格式要注意,等于号的前后不能有空格 ...
- Android热修复之 - 收集崩溃信息上传服务器
1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息.应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看.后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器 ...
最新文章
- 使GDAL库支持中文路径或中文文件名的处理方法
- [转]Linux 微擎系统搭建
- 51nod 1225 余数之和(数论)
- python nlp_使用python在stanford-nlp中的回指解析
- 】.NET使用NPOI组件将数据导出Excel
- 初学者都在坑里!不要在Python中使用“+”来连接字符串
- 一些服务器客户端的c例子
- poj 3368 Frequent values rmq
- MyBatis 【返回自增id】
- POJ 2987 Firing【最大权闭合图】
- 剑指offer之扑克牌的顺子
- java后端使用freemarker生成echarts图表word
- yuv422 java_论YUV422(YUYV)与YUV420相互转换
- android下修改hosts文件 (转自阿辉)
- Elasticsearch(Transport Client)常用操作
- 蓄热式加热炉燃烧技术
- docker中容器与容器之间通讯
- 如何通过YouTube实现财富自由?
- 嵌入式开发使用虚拟机的基本服务安装
- 年薪100万?纯属忽悠!!但年薪60万真不是个梦