文章目录

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. 手机端发送请求到消费者

  2. 消费者构造数据,调用提供者

  3. 消费者完成业务处理,操作数据库

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>

【探花交友】保存用户信息、上传用户头像、用户信息管理相关推荐

  1. WordPress怎么使用支持注册用户上传自定义头像功能?

    WordPress怎么使用支持注册用户上传自定义头像功能?认Wordpress支持显示Gravatar头像,但目前由于众所周知的原因,申请Gravatar头像比较困难只能显示默认的古怪头像,对注册用户 ...

  2. 文件上传与下载,用户登录和拦截与三层架构

    文件上传 文件上传: 将用户本地磁盘中的文件提交保存到服务器中的磁盘上. 搭建一个新 Web 项目编写 register.jsp 编写一个上传的表单,但要求如下: 上传表单的编码格式 enctype= ...

  3. python爬取知乎用户信息泄露_scrapy实战--爬取知乎用户信息(上)

    背景 使用Scrapy分布式爬取知乎所有用户个人信息! 项目地址 爬取知乎所有用户 大规模抓取静态网页Scrapy绝对是利器!当然也可以使用requests库来自己实现,但是要自己写过滤器等组件,既然 ...

  4. 多个ajaxFileUpload上传图片与ajax合用,解决同步问题,用户随意上传多少图片都可以;

    需求描述:因ajaxFileUpload 文件上传插件是异步请求,但是业务上需要先得到 ajaxFileUpload 请求后的图片url, 在通过ajax 把图片URL等其它需要录入的数据一并写入数据 ...

  5. vsftp虚拟用户无法上传文件,解决办法

    vsftp虚拟用户无法上传文件,解决办法 1.打开/etc/vsftpd 目录中的vsftpd.conf文件,查找:guest_username=xxx,这里指的是vsftpd虚拟用户对应的实 际系统 ...

  6. linux ftp匿名只能下载,04. 创建匿名用户能够上传下载,或只能下载的目录

    Re:FTP 文件传输服务 ========================== FTP 服务不论在企业或教学中,是很常用的文件共享方式,它既可以做到匿名访问,也可以做到用户名和密码访问,更可以做到只 ...

  7. ubuntu 搭建一个没有上传限制,支持多用户访问,管理用户下载上传,界面优雅,文件互通的网盘(支持nas)

    一个没有上传限制,支持多用户访问,管理用户下载上传,界面优雅,文件互通的网盘! (Alist + Samba) 运行环境 ubuntu 20.04 Alist `Alist` 官网  https:// ...

  8. 关于VSFTPD匿名用户文件上传权限的问题

    https://blog.csdn.net/m0_37355951/article/details/76974622 配置详细 https://blog.csdn.net/u014008779/art ...

  9. linux匿名用户有写入权限,Linux vsftpd匿名用户开放上传,写入,创建,删除权限

    Linux vsftpd匿名用户开放上传,写入,创建,删除权限 Linux vsftpd匿名用户开放上传,写入,创建,删除权限 安装vsftpd软件包 编辑配置文件,格式要注意,等于号的前后不能有空格 ...

  10. Android热修复之 - 收集崩溃信息上传服务器

    1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息.应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看.后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器 ...

最新文章

  1. 使GDAL库支持中文路径或中文文件名的处理方法
  2. [转]Linux 微擎系统搭建
  3. 51nod 1225 余数之和(数论)
  4. python nlp_使用python在stanford-nlp中的回指解析
  5. 】.NET使用NPOI组件将数据导出Excel
  6. 初学者都在坑里!不要在Python中使用“+”来连接字符串
  7. 一些服务器客户端的c例子
  8. poj 3368 Frequent values rmq
  9. MyBatis 【返回自增id】
  10. POJ 2987 Firing【最大权闭合图】
  11. 剑指offer之扑克牌的顺子
  12. java后端使用freemarker生成echarts图表word
  13. yuv422 java_论YUV422(YUYV)与YUV420相互转换
  14. android下修改hosts文件 (转自阿辉)
  15. Elasticsearch(Transport Client)常用操作
  16. 蓄热式加热炉燃烧技术
  17. docker中容器与容器之间通讯
  18. 如何通过YouTube实现财富自由?
  19. 嵌入式开发使用虚拟机的基本服务安装
  20. 年薪100万?纯属忽悠!!但年薪60万真不是个梦

热门文章

  1. redis数据库指令
  2. 外贸公司用邮件开发客户需要注意些什么?
  3. 20191129每周精品之编程
  4. 服务器并发量计算,网站并发量计算
  5. 巴塞罗那,高迪的城市
  6. 学英语《每日一歌》之because of you
  7. [赛后总结]G2022 Regular Contest 02总结
  8. 主元分析法 matlab,数值分析实习作业之不选主元法高斯分解(Matlab)
  9. Android APP - GPS定位并获取地理位置
  10. 将矩阵的行列互换得到的新矩阵称为转置矩阵