Compare commits

..

No commits in common. "main" and "v1.0-beta1" have entirely different histories.

7 changed files with 4 additions and 85 deletions

1
.gitignore vendored
View File

@ -1,3 +1,2 @@
/data
user.json
自动交叉编译.cmd

View File

@ -1,5 +0,0 @@
FROM debian
ADD ./ /app
WORKDIR /app
EXPOSE 9090
ENTRYPOINT ["/app/main"]

View File

@ -17,40 +17,11 @@
- /idlist 列出所有图片id
## 部分接口文档
### `/img` `/del` `/info`
### `/img` `/img/mini` `/del` `/info`
#### 请求方式
Get
#### 请求参数
id 图片id
### `/img/mini`
#### 请求方式
Get
#### 请求参数
id 图片id
size 图片横向大小 单位像素 0-1024
## 使用的外部库
"github.com/disintegration/imaging" MIT LICENSE
# 部署
## 直接部署
- 确保本机拥有go环境
- 确保网络良好
~~~bash
git clone https://github.com/Kakune55/Pixel.git #克隆存储库
cd ./Pixel #进入工作目录
go build main.go #编译
./main #运行
~~~
## 使用Docker (仅支持Linux-X86_64)
### 导入镜像
~~~bash
wget https://github.com/Kakune55/Pixel/releases/download/v1.0/pixel.tar.gz #版本号仅供参考
tar -zxvf pixel.tar.gz #解压
docker load pixel.tar #导入镜像
~~~
### 运行容器
~~~bash
docker run -d -p <你需要的端口号>:9090 --name:pixel pixel
~~~

View File

@ -68,7 +68,7 @@
}
#imgshow {
max-width: 100%;
width: 100%;
}
#delete-button {

View File

@ -77,7 +77,7 @@
galleryItem.classList.add("gallery-item");
const img = document.createElement("img");
img.src = `/img/mini?id=${id}&size=192`;
img.src = `/img/mini?id=${id}`;
const infoBox = document.createElement("div");
infoBox.classList.add("info-box");

View File

@ -217,36 +217,3 @@ func CheckUserPasswd(username string, password string) bool {
return false
}
}
func GetFileLinkID(md5in string) string {
db, err := sql.Open("sqlite3", "./data/database.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// SQL语句
SQL := `
SELECT * FROM "mytable" WHERE md5 = ?
`
row := db.QueryRow(SQL,md5in)
if err != nil {
log.Fatal(err)
}
// 扫描查询结果
var md5 string
var linkID string
var ext string
err = row.Scan(&linkID,&md5,&ext)
if err != nil {
if err == sql.ErrNoRows {
return ""
} else {
log.Fatal(err)
}
return ""
}
return linkID
}

15
main.go
View File

@ -130,12 +130,6 @@ func upload(w http.ResponseWriter, r *http.Request) {
}
md5sum := fmt.Sprintf("%x", h.Sum(nil))
oldLinkID := database.GetFileLinkID(md5sum)
if oldLinkID != "" {
w.Write([]byte(oldLinkID))
return
}
// 获取文件扩展名
fname := handler.Filename
ext := path.Ext(fname)
@ -233,13 +227,6 @@ func generateThumbnail(filePath string, width, height int) (*image.NRGBA, error)
func displayThumbnailHandler(w http.ResponseWriter, r *http.Request) {
// 获取请求参数,例如文件名
filename := r.FormValue("id")
imgsize, err := strconv.Atoi(r.FormValue("size"))
if err != nil {
http.Error(w, "size参数错误 应为纯数字", http.StatusBadRequest)
}
if imgsize <= 1 || imgsize > 1024 {
http.Error(w, "size参数错误 范围应在0-1024之间", http.StatusBadRequest)
}
if filename == "" {
http.Error(w, "未提供文件名", http.StatusBadRequest)
return
@ -249,7 +236,7 @@ func displayThumbnailHandler(w http.ResponseWriter, r *http.Request) {
filePath := filepath.Join("./data/img", database.GetFileName(filename))
// 生成缩略图
thumbnail, err := generateThumbnail(filePath, imgsize, 0) // 设置缩略图的宽度和高度
thumbnail, err := generateThumbnail(filePath, 128, 0) // 设置缩略图的宽度和高度
if err != nil {
http.Error(w, "无法生成缩略图", http.StatusInternalServerError)
return