怎么举报qq空间相册名称大全

工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。
实现功能介绍:
主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删除相册,当相册下有照片时先删除照片才能删除相册。
因为每个相册和照片要有所属人,所以顺带有登录功能。
声明:只是后端实现代码,前台无任何样式,代码测试可行,仅供参考。
数据库连接帮助类:
public class JDBCHelper {
public static final String DRIVER = &oracle.jdbc.driver.OracleDriver&;
public static final String URL = &jdbc:oracle:thin:@localhost:1521:xxxx&;
public static final String DBNAME = &scott&;
public static final String PASSWORD = &xxxx&;
public static Connection getConn() throws Exception{
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, DBNAME, PASSWORD);
图片上传时,要修改图片名称,防止上传重名图片将上一张覆盖,这里的做法是将图片名改为由用户ID和精确到毫秒的时间组成,修改图片名的帮助类:
public class PhotoName {
public PhotoName(String ip) {
public String getIp() {
public void setIp(String ip) {
public String getTime(){
Date date = new Date();
DateFormat df = new SimpleDateFormat(&yyyyMMddHHmmssSSS&);
return df.format(date);
public String getPhotoName(){
return this.ip + this.getTime();
}实现所有这些的接口类:
public interface UpDAO {
* 创建相册名称
public int creAlbum(AlbumPOJO ap);
*显示所创建的所有相册名称
public List&AlbumPOJO& findAllAlbum(int id);
public List&PhotoPOJO& findAllPhoto(int id);
* 上传照片
public int upPhoto(PhotoPOJO pp);
* 删除相册
* @param id 相册id
public int delAlbum(int id);
* 删除照片
* @param id 照片id
public int delPhoto(int id);
* @param username
* @param password
public UserPOJO login(String username,String password);
接口的具体实现类:
public class UpDAOImpl implements UpDAO {
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#creAlbum(cn.jvsun.POJO.AlbumPOJO)
* 创建相册名称
public int creAlbum(AlbumPOJO ap) {
int albumNum=this.getAlbumNum();
Connection conn =
PreparedStatement pstate =
conn=JDBCHelper.getConn();
conn.setAutoCommit(false);
String sql=&insert into album(id,a_name,user_id)values(?,?,?)&;
pstate = conn.prepareStatement(sql);
pstate.setInt(1, albumNum);
pstate.setString(2,ap.getA_name());
pstate.setInt(3, ap.getUser_id());
pstate.execute();
} catch (Exception e) {
e.printStackTrace();
conn.rollback();//出问题就撤回,全不提交
} catch (SQLException e1) {
e1.printStackTrace();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
return albumN
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#upPhoto(java.lang.String, java.lang.String, int)
* 上传照片
public int upPhoto(PhotoPOJO pp) {
int pNum=this.getPhotoNum();
Connection conn =
PreparedStatement pstate =
conn=JDBCHelper.getConn();
conn.setAutoCommit(false);
String sql=&insert into photo(id,p_name,p_url,p_albumid)values(?,?,?,?)&;
pstate = conn.prepareStatement(sql);
pstate.setInt(1, pNum);
pstate.setString(2,pp.getP_name());
pstate.setString(3, pp.getP_url());
pstate.setInt(4, pp.getP_albumId());
pstate.execute();
} catch (Exception e) {
e.printStackTrace();
conn.rollback();//出问题就撤回,全不提交
} catch (SQLException e1) {
e1.printStackTrace();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#delAlbum(int)
* 删除相册
public int delAlbum(int id) {
int result=0;
Connection conn =
PreparedStatement pstate =
String sql=&delete from album where id=&+id+&&;
conn=JDBCHelper.getConn();
pstate = conn.prepareStatement(sql);
result=pstate.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
pstate.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#delPhoto(int)
* 删除照片
public int delPhoto(int id) {
int result=0;
Connection conn =
PreparedStatement pstate =
String sql=&delete from photo where id=&+id+&&;
conn=JDBCHelper.getConn();
pstate = conn.prepareStatement(sql);
result=pstate.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
pstate.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#login(java.lang.String, java.lang.String)
* 用户登录
public UserPOJO login(String username, String password) {
UserPOJO user=
Connection conn =
PreparedStatement pstate =
ResultSet res =
conn=JDBCHelper.getConn();
String sql=&select id,username from userinfo where username=? and password=?&;
pstate = conn.prepareStatement(sql);
pstate.setString(1, username);
pstate.setString(2, password);
res = pstate.executeQuery();
while(res.next()){
user=new UserPOJO(res.getInt(1),username,null);
} catch (Exception e) {
e.printStackTrace();
res.close();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
* 相册序列号
public int getAlbumNum(){
int albumNum=-1;
Connection conn =
PreparedStatement pstate =
ResultSet res =
conn=JDBCHelper.getConn();
String sql=&select aid.nextval from dual&;
pstate=conn.prepareStatement(sql);
res=pstate.executeQuery();
while(res.next()){
albumNum=res.getInt(1);
} catch (Exception e) {
e.printStackTrace();
res.close();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
return albumN
*照片序列号
public int getPhotoNum(){
int photoNum=-1;
Connection conn =
PreparedStatement pstate =
ResultSet res =
conn=JDBCHelper.getConn();
String sql=&select pid.nextval from dual&;
pstate=conn.prepareStatement(sql);
res=pstate.executeQuery();
while(res.next()){
photoNum=res.getInt(1);
} catch (Exception e) {
e.printStackTrace();
res.close();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
return photoN
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#findAll()
* 显示所创建的相册名
public List&AlbumPOJO& findAllAlbum(int id) {
List&AlbumPOJO& list= new ArrayList&AlbumPOJO&();
Connection conn =
PreparedStatement pstate =
ResultSet res =
conn=JDBCHelper.getConn();
String sql=&select id,a_name,user_id from album where user_id=?&;
pstate = conn.prepareStatement(sql);
pstate.setInt(1, id);
res = pstate.executeQuery();
while(res.next()){
AlbumPOJO ap=new AlbumPOJO(res.getInt(1),res.getString(2),res.getInt(3));
list.add(ap);
} catch (Exception e) {
e.printStackTrace();
res.close();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
/* (non-Javadoc)
* @see cn.jvsun.DAO.UpDAO#findAllPhoto(int)
* 显示照片
public List&PhotoPOJO& findAllPhoto(int aid) {
List&PhotoPOJO& list= new ArrayList&PhotoPOJO&();
Connection conn =
PreparedStatement pstate =
ResultSet res =
conn=JDBCHelper.getConn();
String sql=&select id,p_name,p_url from photo where P_ALBUMID=?&;
pstate = conn.prepareStatement(sql);
pstate.setInt(1, aid);
res = pstate.executeQuery();
while(res.next()){
PhotoPOJO pojo=new PhotoPOJO(res.getInt(1),res.getString(2),res.getString(3), aid);
list.add(pojo);
} catch (Exception e) {
e.printStackTrace();
res.close();
pstate.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
用户,相册,照片三个POJO类:
* 用户实体类
public class UserPOJO implements Serializable{
private static final long serialVersionUID = 5753256L;
public int getId() {
public void setId(int id) {
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
public UserPOJO(int id, String username, String password) {
this.username =
this.password =
public UserPOJO(String username, String password) {
this.username =
this.password =
public UserPOJO() {
// TODO Auto-generated constructor stub
* 相册实体类
public class AlbumPOJO implements Serializable{
private String a_
private int user_
public int getId() {
public void setId(int id) {
public String getA_name() {
public void setA_name(String a_name) {
this.a_name = a_
public int getUser_id() {
return user_
public void setUser_id(int user_id) {
this.user_id = user_
public AlbumPOJO(int id, String a_name, int user_id) {
this.a_name = a_
this.user_id = user_
public AlbumPOJO(String a_name, int user_id) {
this.a_name = a_
this.user_id = user_
public AlbumPOJO() {
// TODO Auto-generated constructor stub
*照片实体类
public class PhotoPOJO implements Serializable{
private static final long serialVersionUID = 9957458L;
private String p_
private String p_
private int p_albumId;
public int getId() {
public void setId(int id) {
public String getP_name() {
public void setP_name(String p_name) {
this.p_name = p_
public String getP_url() {
public void setP_url(String p_url) {
this.p_url = p_
public int getP_albumId() {
return p_albumId;
public void setP_albumId(int p_albumId) {
this.p_albumId = p_albumId;
public PhotoPOJO(int id, String p_name, String p_url, int p_albumId) {
this.p_name = p_
this.p_url = p_
this.p_albumId = p_albumId;
public PhotoPOJO(String p_name, String p_url, int p_albumId) {
this.p_name = p_
this.p_url = p_
this.p_albumId = p_albumId;
public PhotoPOJO() {
// TODO Auto-generated constructor stub
login.jsp实现登录
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&login&/title&
request.setCharacterEncoding(&utf-8&);
String action=request.getParameter(&action&);
UpDAO ud=new UpDAOImpl();
String username=request.getParameter(&username&);
String password=request.getParameter(&password&);
UserPOJO pojo=ud.login(username, password);
if(&log&.equals(action)){
if(pojo==null){
&h1&登录失败&/h1&
request.getSession().setAttribute(&username&, username);
request.getSession().setAttribute(&userid&, pojo.getId());
response.sendRedirect(&index.jsp&);
&form action=&login.jsp?action=log& method=&post&&
&input type=&text& name=&username& placeholder=&请输入用户名&/&
&input type=&password& name=&password& placeholder=&请输入密码&/&
&input type=&submit&/&
index.jsp实现显示相册
代码如下:
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&person message&/title&
&center&相册界面&/center&
当前用户:&%=request.getSession().getAttribute(&username&)%& &br&
&a href=&cre.jsp&&去创建相册&/a&&br&
我的所有相册:&br&
int userid=(Integer)request.getSession().getAttribute(&userid&);
UpDAO dao=new UpDAOImpl();
List&AlbumPOJO& list=dao.findAllAlbum(userid);
for(AlbumPOJO pojo:list){
&a&相册id:&/a&&td&&%=pojo.getId() %&&/td&
&a&相册名称:&/a&&td&&%=pojo.getA_name() %&&/td&
&a&创建者id:&/a&&td&&%=pojo.getUser_id() %&&/td&
&td&&a href=&up.jsp?aid=&%=pojo.getId() %&&&添加照片&/a&&/td&
&td&&a href=&show.jsp?phid=&%=pojo.getId() %&&&查看照片&/a&&/td&
&td&&a href=&del.jsp?aid=&%=pojo.getId() %&&&删除相册&/a&&/td&
cre.jsp创建相册
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&up photo&/title&
request.setCharacterEncoding(&utf-8&);
String action=request.getParameter(&action&);
UpDAO ud=new UpDAOImpl();
String toCre=request.getParameter(&cre&);
int userId=(Integer)request.getSession().getAttribute(&userid&);
if(&cre&.equals(action)){
AlbumPOJO ap=new AlbumPOJO(toCre,userId);
int aNum=ud.creAlbum(ap);
if(aNum!=-1){
response.sendRedirect(&index.jsp&);
&h1&创建相册失败&/h1&
&form action=&cre.jsp?action=cre& method=&post&&
&input type=&text& name=&cre& placeholder=&请输入您要创建的相册名称&/&
&input type=&submit& value=&确定&&
up.jsp上传照片
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
&%@ page import=&cn.jvsun.tools.*& %&
&%@page import=&org.lxh.smart.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&上传照片&/title&
int aid=Integer.parseInt(request.getParameter(&aid&));
&form action=&upCheck.jsp& method=&post& enctype=&multipart/form-data&&
&input type=&hidden& name=&aid& value=&&%=aid %&&/&
&input type=&file& name=&photo&/&
&input type=&submit& value=&确认上传&/&
upCheck.jsp上传照片的处理页
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
&%@ page import=&cn.jvsun.tools.*& %&
&%@page import=&org.lxh.smart.*& %&
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&&/title&
String ip = request.getRemoteAddr();
ip = ip.replaceAll(&:&,&&);
PhotoName pn=new PhotoName(ip);
String pName = pn.getPhotoName();//照片名字,是由IP加当前时间组成
SmartUpload smartupload = new SmartUpload();//实例化上传操作的对象
//初始化上传文件
smartupload.initialize(pageContext);
//准备上传
smartupload.upload();
int albumId=Integer.parseInt(smartupload.getRequest().getParameter(&aid&));
//取得文件的后缀
String endName = smartupload.getFiles().getFile(0).getFileExt();
//文件保存的路径
/*String p_url = getServletContext().getRealPath(&/&)+
&file/&+pName+&.&+endN*/
String p_url=&K:/workspace/Xiangce/WebRoot/file/&+pName+&.&+endN
//保存文件
smartupload.getFiles().getFile(0).saveAs(p_url);
UpDAO ad=new UpDAOImpl();
PhotoPOJO pojo=new PhotoPOJO(pName+&.&+endName,p_url,albumId);
int photoNum=ad.upPhoto(pojo);
if(photoNum != -1){
request.getSession().setAttribute(&phid&, albumId);
response.sendRedirect(&show.jsp&);
show.jsp显示照片及信息页:
代码如下:
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&My JSP 'show.jsp' starting page&/title&
&center&相册界面&/center&
当前用户:&%=request.getSession().getAttribute(&username&)%& &br&
int phid=(Integer)request.getSession().getAttribute(&phid&);
UpDAO dao=new UpDAOImpl();
List&PhotoPOJO& list=dao.findAllPhoto(phid);
for(PhotoPOJO pojo:list){
&a&照片id:&/a&&td&&%=pojo.getId() %&&/td&&br&
&a&照片名称:&/a&&td&&%=pojo.getP_name() %&&/td&&br&
&a&照片路径:&/a&&td&&%=pojo.getP_url() %&&/td&&br&
&a&照片所属相册名称:&/a&&td&&%=pojo.getP_albumId() %&&/td&&br&
&td&&img src=&&%=path%&/file/&%=pojo.getP_name() %&& width=&100& height=&100&/&&/td&
&a href=&photo_del.jsp?pid=&%=pojo.getId() %&&&删除照片:&/a&&/td&&br&
photo_del.jsp删除照片
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&del&/title&
int pid=Integer.parseInt(request.getParameter(&pid&));
int result=0;
UpDAO dao=new UpDAOImpl();
result=dao.delPhoto(pid);
if(result==1){
out.println(&&script&alert('删除成功');window.location.href('show.jsp');&/script&&);
out.println(&&script&alert('出错了');window.location.href('show.jsp');&/script&&);
del.jsp删除相册
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ page import=&cn.jvsun.DAO.Impl.*& %&
&%@ page import=&cn.jvsun.POJO.*& %&
&%@ page import=&cn.jvsun.DAO.*& %&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&del&/title&
int aid=Integer.parseInt(request.getParameter(&aid&));
int result=0;
UpDAO dao=new UpDAOImpl();
result=dao.delAlbum(aid);
if(result==1){
out.println(&&script&alert('删除成功');window.location.href('index.jsp');&/script&&);
out.println(&&script&alert('删除失败,请先把相册中的照片删掉');window.location.href('index.jsp');&/script&&);
数据库的建表语句:
-- Create table
create table USERINFO
USERNAME VARCHAR2(30),
PASSWORD VARCHAR2(30)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
initial 64
minextents 1
maxextents unlimited
-- Create/Recreate primary, unique and foreign key constraints
alter table USERINFO
add constraint PID primary key (ID)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Create table
create table ALBUM
NUMBER not null,
VARCHAR2(30),
USER_ID NUMBER
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
initial 64
minextents 1
maxextents unlimited
-- Create/Recreate primary, unique and foreign key constraints
alter table ALBUM
add constraint AL_PID primary key (ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
initial 64K
minextents 1
maxextents unlimited
alter table ALBUM
add constraint USERID foreign key (USER_ID)
references USERINFO (ID)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Create table
create table PHOTO
VARCHAR2(30),
VARCHAR2(50),
P_ALBUMID NUMBER(30)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
initial 64
minextents 1
maxextents unlimited
-- Create/Recreate primary, unique and foreign key constraints
alter table PHOTO
add constraint ALB_ID foreign key (P_ALBUMID)
references ALBUM (ID);
好了,所有代码就写完了,切记,需要smartupload.jar包,没有的童鞋可以去下载:http://download.csdn.net/detail/weixin_7953
不积硅步无以至千里,努力!
本文已收录于以下专栏:
相关文章推荐
衔接上篇博文,废话不多说。
流程说明:
页面点击‘加载图片’---》传入参数获取图片路径地址---》处理图片地址---》传到jsp页面中
在此之前需要将tomcat配置虚拟路径(图片必须...
本例的目的是实现类似于QQ的照片选择功能。
做一个项目中有这需求,当时找资料做的时候,感觉很麻烦!这里做个总结,与大家分享下,方便大家更容易的开发!
第一步:添加依赖包:
dependencies {
compile fileTree...
博客恢复更新后,还是打算每周至少写一篇技术博客吧,再多的话也没什么时间(╮(╯_╰)╭)。
先看下效果图吧,弄了半天没整出小鱼2M的gif图,所以暂时先用几张截图代替吧,大体流程也就这样。现在几乎每...
最近公司项目需要从本地上传图片到服务器,直接去找才发现安卓居然还有这么坑的时候,调用原生的只能选择一张图片,而且还没有任何的细节优化,触摸图片就直接返回了。这肯定不行啊!于是就在网上找啊找。。。找啊找...
最近公司项目需要从本地上传图片到服务器,直接去找才发现安卓居然还有这么坑的时候,调用原生的只能选择一张图片,而且还没有任何的细节优化,触摸图片就直接返回了。这肯定不行啊!于是就在网上找啊找。。。找啊找...
他的最新文章
讲师:李江龙
讲师:司徒正美
Java知音公众号
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)热门标签:
温馨提示:
1.发布的网名不允许含有广告、网址、色情的内容。2.网名出现求花、同意的给?、求祝福、求同情等类似的网名,将不会通过审核且鲜花数清零。3.网名中含有辱骂、攻击、诽谤他人的将会被删除。4.发布各种重复网名,网名将被删除且鲜花数清零。
最熟悉的陌生人*
一根香烟彻底深入我的心
§暗里着迷
你用搜狗是搜到自己过吗?
[眸似温柔]
[似回忆似爱似你]
明天我要扮女孩子
∫∫∫∫∫∫∫
伴我久久可好
伴我久久可好。
[不能自拔]
[不懂退出]
拿命爱自己#
花开自有时的格调
1个普通到不能在普通的人
谎言丶终究变不成誓言
那些不曾习惯的习惯}
握着左手的幸福
格式化自己、是为了删除你
⌒人生若只如初见
情话那么多内句该当真 ╭
个性网站内热门搜索
共61个网名

我要回帖

更多关于 qq空间相册名称 的文章

 

随机推荐