赛事添加页面,上传图片成功后。刷新页面,再次上传图片会报错
来源:8-9 赛事直播员图片发布 - 上传图片(三)
大漠胡杨_0002
2018-10-16
赛事添加页面:xxx.test:8811/admin/live.html 上传图片成功后,再次刷新该页面,点击上传图片,报错。
报错信息:
0
68
/home/vagrant/code/swoole/thinkphp/thinkphp/library/think/File.php
SplFileObject::__construct(/tmp/swoole.upfile.Tc3YnH): failed to open stream: No such file or directory
目前只能 kill 掉后台 sw 进程,重新启动,上传图片一次。刷新页面,再上传就报上面错误。
请高手指定!
写回答
5回答
-
就我皮
2021-01-26
虽然好久的问题了,但是后来的我也遇到了。
后来者在有遇到的可以看下 下面 的解决方式。
常驻内存引起的。一开始老师讲过。
搜索 TP 源码里的 file 方法。 可以全局搜索 比如 直接搜 : function file(
就可以搜到。
然后将
//if (empty($this->file)) {
//}
注释掉 即可 。
10 -
大漠胡杨_0002
提问者
2018-10-19
Image.php 代码 <?php namespace app\admin\controller; use app\common\lib\Util; class Image { public function index() { // print_r($_FILES); $file = request()->file('file'); $info = $file->move('../public/static/upload'); // print_r($info); if ($info) { $data = [ 'image' => config('live.host') . $info->getSaveName(), ]; return Util::show(config('code.success'), 'OK', $data); } else { return Util::show(config('code.error'), 'error'); } return 'image'; } }
042018-10-23 -
大漠胡杨_0002
提问者
2018-10-19
live.html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>singwa赛事直播-主持人页面</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" /> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" href="./css/font.css"> <link rel="stylesheet" href="./css/xadmin.css"> <link rel="stylesheet" type="text/css" href="../webuploader/webuploader.css"> <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript" src="./lib/layui/layui.js" charset="utf-8"></script> <script type="text/javascript" src="./js/xadmin.js"></script> <!-- 让IE8/9支持媒体查询,从而兼容栅格 --> <!--[if lt IE 9]> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> <![endif]--> <script type="text/javascript" src="../webuploader/webuploader.js"></script> </head> <body> <div class="x-body"> <form class="layui-form"> <div class="layui-form-item"> <label for="username" class="layui-form-label"> <span class="x-red">*</span>第几节 </label> <div class="layui-input-inline"> <select id="type" name="type" class="valid"> <option value="1">第一节</option> <option value="2">第二节</option> <option value="3">第三节</option> <option value="4">第四节</option> </select> </div> </div> <div class="layui-form-item"> <label for="username" class="layui-form-label"> <span class="x-red">*</span>球队 </label> <div class="layui-input-inline"> <select id="team_id" name="team_id" class="valid"> <option value="0">请选择</option> <option value="1">马刺</option> <option value="4">火箭</option> </select> </div> </div> <div class="layui-form-item layui-form-text"> <label for="desc" class="layui-form-label"> 赛况内容 </label> <div class="layui-input-block"> <textarea placeholder="请输入内容" id="content" name="content" class="layui-textarea"></textarea> </div> </div> <div class="layui-form-item layui-form-text"> <label for="desc" class="layui-form-label"> 赛况图 </label> <!--dom结构部分--> <div id="uploader-demo"> <!--用来存放item--> <div id="fileList" class="uploader-list"></div> <div id="filePicker">选择图片</div> </div> </div> <div class="layui-form-item"> <label for="L_repass" class="layui-form-label"> </label> <button type="submit" class="layui-btn" lay-filter="add" id="submit-btn" lay-submit=""> 增加 </button> </div> </form> </div> <script> var $ = jQuery, $list = $('#fileList'), // 优化retina, 在retina下这个值是2 ratio = window.devicePixelRatio || 1, // 缩略图大小 thumbnailWidth = 100 * ratio, thumbnailHeight = 100 * ratio, // Web Uploader实例 uploader; // 初始化Web Uploader uploader = WebUploader.create({ // 选完文件后,是否自动上传。 auto: true, // swf文件路径 swf: '../webuploader/Uploader.swf', // 文件接收服务端。 server: 'http://thinkphp-swoole.test:8811/?s=admin/image/index', // 选择文件的按钮。可选。 // 内部根据当前运行是创建,可能是input元素,也可能是flash. pick: '#filePicker', // 只允许选择图片文件。 accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' } }); // 当有文件添加进来的时候 uploader.on( 'fileQueued', function( file ) { var $li = $( '<div id="' + file.id + '" class="file-item thumbnail">' + '<img>' + '</div>' ), $img = $li.find('img'); // $list为容器jQuery实例 $list.append( $li ); // 创建缩略图 // 如果为非图片文件,可以不用调用此方法。 // thumbnailWidth x thumbnailHeight 为 100 x 100 uploader.makeThumb( file, function( error, src ) { if ( error ) { $img.replaceWith('<span>不能预览</span>'); return; } $img.attr( 'src', src ); }, thumbnailWidth, thumbnailHeight ); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadProgress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress span'); // 避免重复创建 if ( !$percent.length ) { $percent = $('<p class="progress"><span></span></p>') .appendTo( $li ) .find('span'); } $percent.css( 'width', percentage * 100 + '%' ); }); // 文件上传成功,给item添加成功class, 用样式标记上传成功。 uploader.on( 'uploadSuccess', function( file, response ) { if(response.status == 0){ $( '#'+file.id ).append('<input type="hidden" name="image" value="' + response.data.image + '"/>'); } $( '#'+file.id ).addClass('upload-state-done'); }); // 文件上传失败,显示上传出错。 uploader.on( 'uploadError', function( file ) { var $li = $( '#'+file.id ), $error = $li.find('div.error'); // 避免重复创建 if ( !$error.length ) { $error = $('<div class="error"></div>').appendTo( $li ); } $error.text('上传失败'); }); // 完成上传完了,成功或者失败,先删除进度条。 uploader.on( 'uploadComplete', function( file ) { $( '#'+file.id ).find('.progress').remove(); }); var $submitBtn = $('#submit-btn'); // 提交表单 $submitBtn.click(function (event) { event.preventDefault(); var formData = $('form').serialize(); // TODO: 请求后台接口跳转界面,前端跳转或者后台跳 $.get("http://thinkphp-swoole.test:8811?s=admin/live/push&" + formData, function (data) { if (data.status == 1) { // 登录成功 } // location.href='index.html'; }, 'json'); }); </script> </body> </html>
00 -
singwa
2018-10-18
贴出您的PHP代码。。。
022018-10-20 -
大漠胡杨_0002
提问者
2018-10-16
上图中,“选择图片”按钮,点击也无响应。
012018-10-20
相似问题