小编Her*_*u S的帖子

如何在Laravel 5.2中以JSON格式返回403响应?

我正在尝试使用Laravel 5.2开发RESTful API.我偶然发现如何以JSON格式返回失败的授权.目前,它正在抛出403页面错误而不是JSON.

控制器: TenantController.php

class TenantController extends Controller
{
    public function show($id)
    {
        $tenant = Tenant::find($id);
        if($tenant == null) return response()->json(['error' => "Invalid tenant ID."],400);
        $this->authorize('show',$tenant);
        return $tenant;
    }
}
Run Code Online (Sandbox Code Playgroud)

政策: TenantPolicy.php

class TenantPolicy
{
    use HandlesAuthorization;
    public function show(User $user, Tenant $tenant)
    {
        $users = $tenant->users();
        return $tenant->users->contains($user->id);
    }
}
Run Code Online (Sandbox Code Playgroud)

授权目前工作正常,但它显示403禁止页面而不是返回json错误.是否可以将其作为403的JSON返回?而且,是否有可能使所有失败的授权(不仅仅是在这个控制器中)全局化?

php laravel-5 laravel-5.2

16
推荐指数
4
解决办法
2万
查看次数

大文件上载PHP连接重置无条件正确设置

我有一个非常普遍的问题,似乎找到的所有可用解决方案都不起作用.

我们有一台LAMP服务器,它正在接收大量流量.使用此服务器,我们执行常规文件提交上载.在小文件上传中,它完美地运行.在大约4-5MB的文件上,此提交上载间歇性失败(有时它可以工作但很多次失败).

我们在PHP上有以下配置:

max_input_time: 600
max_execution_time: 600
max_upload_size: 10M
post_max_size: 10M
Run Code Online (Sandbox Code Playgroud)

Apache设置:

Timeout: 600
Keep-Alive Timeout: 15
Keep-Alive: On
Per Child: 1000
Max Conn: 100
Run Code Online (Sandbox Code Playgroud)

因此,我想知道是否有人可以帮助我.我们在网上找到了问题和解决方案,但在我们的案例中都没有.

非常感谢.任何输入/反馈都非常感谢!

php large-data

8
推荐指数
1
解决办法
8793
查看次数

在Android中删除旋转的图像不会显示擦除正确的路径

我们正在构建一个涉及图像编辑的Android应用程序.一些功能包括旋转图像和擦除图像的一部分.

我们使用以下库:https://github.com/nimengbo/StickerView

我们已成功创建了一个旋转和擦除图像的功能.但是,当我们尝试执行以下操作时:

  1. 在一定程度上旋转图像.
  2. 然后,删除图像.

我们发现了以下错误:

  1. 当我们尝试擦除旋转的图像时,擦除的路径不会反映我们的手指在屏幕上跟踪的路径.

在此输入图像描述

从上图中,黄线是手指的实际移动(在贴纸上垂直向下).但是,发现擦除的路径是对角的.

此问题仅在旋转图像时存在.图像未旋转时不存在.

经过进一步的调试,我们从上述问题中得出一些假设:

  1. 由于旋转图像,x和y绝对位置改变.因此,路径不会通过触摸路径反映正确的路径.

我们怎样才能确保路径仍在参考正确的路径,即使在旋转后手指也会触摸到什么路径?

这是我们在StickerView.java类中扩展ImageView类的代码.

的onTouchEvent

@Override
public boolean onTouchEvent(MotionEvent event) {
    int action = MotionEventCompat.getActionMasked(event);

    float[] pointXY = new float[2];

    pointXY = getAbsolutePosition(event.getX(0),event.getY(0));
    float xPoint = pointXY[0];
    float yPoint = pointXY[1];


    switch (action) {
        case MotionEvent.ACTION_DOWN:

            // first touch
            // if it is inside the image
            if (isInBitmap(event)) {
                // set isInSide to true
                isInSide = true;

                // if it is a scratch
                if(doScratch){ …
Run Code Online (Sandbox Code Playgroud)

java android image imageview

8
推荐指数
1
解决办法
373
查看次数

带有`git pull`的Git Hook`post-receive`通过命令行运行良好,但在自动挂钩时返回空字符串

就像很多,我试图post-receive在服务器端远程git上创建一个钩子.以下是我的代码:

cd [LIVE SITE DIR] && git pull origin master | wall

我添加了wall它,以便可以播放,我可以收到通知.我注意到的一件事是,当我跑步时./post-receive,一切正常.

Broadcast message from root (Tue Oct  8 14:58:13 2013):

Updating 7ebd925..1a25791
Fast-forward
 html/header.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Run Code Online (Sandbox Code Playgroud)

但是,当我试图做一个git push,./post-receive似乎被调用但我收到了以下空广播:

Broadcast message from root (Tue Oct  8 14:53:32 2013):
Run Code Online (Sandbox Code Playgroud)

我试图将命令包括在内pwd,并且两种情况下一切正常.除了它似乎返回一个空输出.lspost-receivegit pull

已经完成了SO中提供的所有建议但无济于事:(.非常感谢任何帮助或建议.

谢谢!

git githooks

2
推荐指数
1
解决办法
4290
查看次数

优化 InnoDB 插入查询

根据慢查询日志,以下查询(和类似查询)偶尔需要大约 2s 执行:

INSERT INTO incoming_gprs_data (data,type) VALUES ('3782379837891273|890128398120983891823881abcabc','GT100');
Run Code Online (Sandbox Code Playgroud)

表结构:

CREATE TABLE `incoming_gprs_data` (
 `id` int(200) NOT NULL AUTO_INCREMENT,
 `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `data` text NOT NULL,
 `type` char(10) NOT NULL,
 `test_udp_id` int(20) NOT NULL,
 `parse_result` text NOT NULL,
 `completed` tinyint(1) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `completed` (`completed`)
) ENGINE=InnoDB AUTO_INCREMENT=5478246 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

与此表相关的活动:

  1. 每秒大约有 200 行被插入到这个表中。传入的数据来自不同的来源(因此,它不会发生在一个进程中,而是每秒处理多个进程)。
  2. cron 进程将通过通过获取行来处理这些行SELECT * FROM incoming_gprs_data WHERE completed = 0,处理它们并更新completed = 1
  3. 另一个 cron 进程(每 15 分钟运行一次)将删除已完成的行(即completed …

mysql innodb bulkinsert bulk-load database-performance

1
推荐指数
1
解决办法
1320
查看次数

我们如何在angularjs2中的http observable中添加另一个订阅操作?

我是Angular2的新手.我有一个LoginComponent,它从提交按钮接受一个名为submitLogin的动作.单击时,它会将用户名和密码(通过UserService)发送到API服务器(在UtilService的帮助下).如果服务器响应OK,它将返回一个令牌,我们将在本地保存并重定向它.

到目前为止,我已设法发送用户名和密码并保存令牌.但是,我对如何在LoginComponent中添加其他操作感到困惑,以便我们可以重定向用户.(我在下面的login.component.ts中添加了一条评论,以澄清我想做什么).

如果我不清楚,请随时告诉我.

以下是我的代码:

login.component.ts具有以下内容:

import {Component, OnInit} from 'angular2/core';
import {NgForm}    from 'angular2/common';
import {UserService} from '../services/user.service';

@Component({
  selector: 'login',
  templateUrl: './components/login/login.component.html',
  styleUrls: ['./components/login/login.component.css']
})
export class LoginComponent implements OnInit {
  public username: string;
  public password: string;
  public loginResult: string;

  constructor(private _userService: UserService) {}
  ngOnInit() { }
  submitLogin() {
    var p = this._userService.login(this.username, this.password);
    // HOW TO: 
    // I know p is an observable. But, is it possible to add a condition as follow:
    // if p is success, …
Run Code Online (Sandbox Code Playgroud)

typescript angular

0
推荐指数
1
解决办法
6158
查看次数