diff --git a/fsv2/composer.json b/fsv2/composer.json new file mode 100644 index 0000000..4f45d96 --- /dev/null +++ b/fsv2/composer.json @@ -0,0 +1,101 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": [ + "framework", + "laravel" + ], + "license": "MIT", + "require": { + "php": "^7.3", + "ext-curl": "*", + "ext-json": "*", + "astrotomic/laravel-translatable": "^11.8", + "bacon/bacon-qr-code": "~1.0.3", + "bitwasp/bitcoin": "^1.0", + "changzhong/extension-iframe-tabs": "^1.0", + "dcat-admin-extension/ueditor": "dev-master", + "dcat/easy-excel": "^1.0", + "dcat/laravel-admin": "^1.7", + "denpa/php-bitcoinrpc": "^2.1", + "dingo/api": "^2.3", + "fideloper/proxy": "^4.0", + "fruitcake/laravel-cors": "^2.0", + "guzzlehttp/guzzle": "6.5.2", + "intervention/image": "^2.6", + "jenssegers/agent": "^2.6", + "jenssegers/mongodb": "^3.6", + "laravel/framework": "6.*", + "laravel/helpers": "^1.2", + "laravel/tinker": "^1.0", + "medz/id-card-of-china": "^1.1", + "orangehill/iseed": "^3.0", + "oscarafdev/migrations-generator": "^2.0", + "overtrue/easy-sms": "^1.3", + "pragmarx/google2fa-laravel": "^1.3", + "predis/predis": "^1.1", + "sc0vu/web3.php": "dev-master", + "simplesoftwareio/simple-qrcode": "2.0.0", + "swoole/ide-helper": "^4.5", + "symfony/console": "4.3.4", + "torann/geoip": "^1.2", + "tymon/jwt-auth": "^1.0.0", + "web3p/ethereum-tx": "dev-master", + "workerman/channel": "^1.0", + "workerman/gateway-worker": "^3.0", + "workerman/gatewayclient": "^3.0", + "workerman/http-client": "^0.1.6", + "zgldh/qiniu-laravel-storage": "^0.10.3" + }, + "require-dev": { + "beyondcode/laravel-dump-server": "^1.0", + "filp/whoops": "^2.0", + "fzaninotto/faker": "^1.4", + "mockery/mockery": "^1.0", + "nunomaduro/collision": "^3.0", + "phpunit/phpunit": "^7.5" + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "platform-check": false + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "autoload": { + "psr-4": { + "App\\": "app/" + }, + "classmap": [ + "database/seeds", + "database/factories" + ], + "files": [ + "app/Common/functions.php" + ] + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "minimum-stability": "dev", + "prefer-stable": true, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + } +} diff --git a/fsv2/discovery/discovery.go b/fsv2/discovery/discovery.go index 3e6ffdd..f2a5c24 100644 --- a/fsv2/discovery/discovery.go +++ b/fsv2/discovery/discovery.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "os" + "path/filepath" "strings" "xtcfs/config" ) @@ -49,15 +50,17 @@ func Listen() { if msgtype == "xdml" { opdir := parts[1] - fmt.Printf("target directory is %s", opdir) + fmt.Printf("target directory is %s\n", opdir) // 查找对应的文件目录 - err := os.MkdirAll(opdir, os.ModePerm) + // + wkdir := filepath.Join(config.G.FilePath, opdir) + // wkdir := strings.Join(config.G.FilePath, os.PathSeparator, opdir) + err := os.MkdirAll(wkdir, os.ModePerm) if err != nil { fmt.Printf(" create osdir is error:%s\n", err) } - } - fmt.Println(" parts from udp read :", parts) + } } diff --git a/fsv2/fstc b/fsv2/fstc index 8628a16..ec24b5a 100644 Binary files a/fsv2/fstc and b/fsv2/fstc differ diff --git a/fsv2/handler/handler.go b/fsv2/handler/handler.go index 3dfab0e..cc9565c 100644 --- a/fsv2/handler/handler.go +++ b/fsv2/handler/handler.go @@ -97,6 +97,9 @@ func ReceiveHandler(w http.ResponseWriter, r *http.Request) { } filename := filepath.FromSlash(params["filename"]) + //debug + fmt.Printf("header params:%v", header.Header) + fmt.Printf("Downloading [%s]...\n", filename) dirPath := filepath.Dir(filename) err = os.MkdirAll(dirPath, os.ModePerm) @@ -117,6 +120,8 @@ func ReceiveHandler(w http.ResponseWriter, r *http.Request) { http.Error(w, err.Error(), http.StatusInternalServerError) return } + // 如果单文件,需要先备份 + // 如果收到的是zip文件,自动给解压缩 suf := strings.Split(filename, ".") if suf[1] == "zip" {